The DLC Interface

Whistler DLC will no longer be supported. For more information, see Network Protocol Support in Windows.

The Data Link Control (DLC) interface is a special-purpose, nonroutable protocol. It is not used for communication between computers running Windows 95/98 and Windows NT/Windows 2000. DLC provides connectivity from a computer running Windows 95/98 or Windows NT/Windows 2000 to IBM mainframes or printers that are connected directly to the network.

The DLC interface exposes an explicit set of commands that are issued through a structure known as the command control block (CCB). The system conveys the information in the command control block to the DLC protocol driver. The DLC protocol driver provides access to IEEE 802.2 class I and class II services. It also provides the interface to send and receive raw 802.5, 802.3, and Ethernet type network frames.

This overview discusses the following topics:

  • About the DLC Interface
  • DLC Reference

For more information on DLC, contact IBM and order the IBM Local Area Network Technical Reference: IEEE 802.2 and NETBIOS Application Programming Interfaces.

Microsoft Platform SDK, February 2001 Edition.
This content last built on Thursday, February 01, 2001.


About the DLC Interface

On Windows NT/Windows 2000, the DLC interface can be accessed from Win32-based applications and from 16-bit Windows-based applications. The 32-bit interface conforms largely to the CCB2 interface. The 16-bit interface conforms to the CCB1 interface. Windows 95/98 does not support CCB1 or a 16-bit interface.

  • Command Control Block Addresses
  • DLC Commands
  • DLC Command Completion
  • Chaining DLC Commands
  • Buffer Management
  • DLC Enhancements
  • DLC Differences Between Windows NT and Windows 95/98


Command Control Block Addresses

All network addresses in the command control block, including Ethernet addresses, must be in noncanonical form. In this form, the bits of each byte appear in the reverse order from their representation on the network.

A network adapter is provided with a permanent, universally administered address. Additionally, an application can provide a temporary replacement for this address and a group address for the adapter.

Many commands require a station identifier. You can specify the direct station, a service access point (SAP), or a link station. The direct station is referred to by three station identifiers, which differ only in how they receive frames. The three station identifiers are as follows:

ID | Meaning
0 | Receives all frames not directed to other defined stations.
1 | Receives Media Access Control (MAC) frames.
2 | Receives non-MAC frames.


DLC Commands

DLC commands are issued through command control blocks. To issue a DLC command, call the AcsLan function, which receives two pointers to LLC_CCB structures representing command control blocks. The LLC_CCB structure contains information about the command to perform, an optional event handle, and a pointer to a parameter table. The parameter table contains information required by the command. The format of the parameter table varies from command to command.

The DLC commands fall into three functional groups.

Direct Interface Commands

The direct interface enables you to perform control functions on an adapter. It also enables you to open and close an adapter, obtain the error status, and set addresses. The following are the direct interface commands:

  • LLC_DIR_CLOSE_ADAPTER
  • LLC_DIR_CLOSE_DIRECT
  • LLC_DIR_INITIALIZE
  • LLC_DIR_INTERRUPT
  • LLC_DIR_OPEN_ADAPTER
  • LLC_DIR_OPEN_DIRECT
  • LLC_DIR_READ_LOG
  • LLC_DIR_SET_EXCEPTION_FLAGS
  • LLC_DIR_SET_FUNCTIONAL_ADDRESS
  • LLC_DIR_SET_GROUP_ADDRESS
  • LLC_DIR_SET_MULTICAST_ADDRESS
  • LLC_DIR_STATUS
  • LLC_DIR_TIMER_CANCEL
  • LLC_DIR_TIMER_CANCEL_GROUP
  • LLC_DIR_TIMER_SET

DLC (IEEE 802.2) Interface Commands

The DLC interface provides an interface to the logical link control (LLC) sublayer of the DLC protocol. It offers both connectionless and connection-oriented services. The following are the DLC interface commands:

  • LLC_DLC_CLOSE_SAP
  • LLC_DLC_CLOSE_STATION
  • LLC_DLC_CONNECT_STATION
  • LLC_DLC_FLOW_CONTROL
  • LLC_DLC_MODIFY
  • LLC_DLC_OPEN_SAP
  • LLC_DLC_OPEN_STATION
  • LLC_DLC_REALLOCATE_STATIONS
  • LLC_DLC_RESET
  • LLC_DLC_SET_THRESHOLD
  • LLC_DLC_STATISTICS

Transmit and Receive Commands

Data is exchanged between applications on the network in frames using transmit and receive commands. The protocol driver moves the contents of the transmit buffer to the adapter's work space for transmission. The protocol driver receives frames from the network and moves them to the application's buffers. The following are the transmit and receive commands:

  • LLC_BUFFER_CREATE
  • LLC_BUFFER_FREE
  • LLC_BUFFER_GET
  • LLC_READ
  • LLC_READ_CANCEL
  • LLC_RECEIVE
  • LLC_RECEIVE_CANCEL
  • LLC_RECEIVE_MODIFY
  • LLC_TRANSMIT_DIR_FRAME
  • LLC_TRANSMIT_FRAMES
  • LLC_TRANSMIT_I_FRAME
  • LLC_TRANSMIT_TEST_CMD
  • LLC_TRANSMIT_UI_FRAME
  • LLC_TRANSMIT_XID_CMD
  • LLC_TRANSMIT_XID_RESP_FINAL
  • LLC_TRANSMIT_XID_RESP_NOT_FINAL


DLC Command Completion

When synchronizing thread execution with the completion of a command, you can check for command completion using any combination of the following three methods:

  • Set the ulCompletionFlag member of the LLC_CCB structure to a nonzero value and issue an LLC_READ command to read the command completion status.
  • Provide an event handle in the hCompletionEvent member. The protocol driver sets the event to the signaled state upon command completion to notify the application. Use one of the wait functions to monitor the event.
  • Poll the uchDlcStatus member.

    Windows NT/2000: This method is unreliable and should not be used. The system can update the uchDlcStatus member before setting the other return values.


Chaining DLC Commands

To enhance the performance of the protocol driver, your application can issue multiple DLC commands with a single invocation of the protocol driver. This is known as chaining commands.

To issue multiple commands, set the pNext member of the LLC_CCB structure to the next LLC_CCB structure in the chain. All commands issued in this manner must specify the same adapter in the uchAdapterNumber member. If the chained commands do not specify the same adapter, the system performs the following steps:

  1. Stops processing the chained commands.
  2. Returns a pointer to the first unprocessed command control block in the ppBadCcb parameter of the AcsLan function.
  3. Sets the uchDlcStatus member of the first unprocessed command control block to LLC_STATUS_CHAINED_DIFFERENT_ADAPTERS.
  4. Sets the return value for AcsLan to ACSLAN_STATUS_CHAINED_CCB_IN_ERROR.

Note Do not chain commands that are dependent on the completion of other commands. For example, do not chain LLC_DLC_OPEN_SAP, LLC_DLC_OPEN_STATION, and LLC_DLC_CONNECT_STATION, because the last two commands are dependent on the completion of the first command.


Buffer Management

The buffer management provided in the Win32 DLC is different than the buffer management provided in other implementations. However, the buffer headers are as defined in the IBM DLC interface specification.

The Win32 DLC buffers are allocated from a single virtual memory block. The DLC driver defines the buffer segment sizes. For each frame the driver receives, it allocates a minimal combination of 256, 512, 1024, 2048, and 4096 buffer segments (at most, one of each size). This minimizes the amount of nonpaged memory needed for different buffer segment headers. It also allocates the minimal number of buffers for the received frame. Applications can request the fixed size buffers or an optimal number of buffers for a frame size.

The DLC buffer pools are dynamically expanded during LLC_READ, LLC_DLC_FLOW_CONTROL, and LLC_BUFFER_GET commands if the size of the free buffers is less than the specified minimum threshold size for the application. However, the system cannot increase the buffer pool beyond the application-specified maximum size.

An application can use its own buffers for transmitting data or send data directly from the buffer pool. Because the DLC driver locks all transmit buffers that are not in the buffer pool, you should avoid using a large number of small buffers for transmitting data.

To improve performance, use the following techniques:

  • Allocate buffers from the buffer pool. Copy data to these buffers from the user buffers.
  • The negotiated maximum frame size should fit into a single DLC buffer. For example, use 2048 or 4096 minus the size of the frame and buffer headers.
  • Receive several frames with the LLC_READ command.


DLC Enhancements

There are significant differences between the IBM DLC interface specification and the implementation of the Win32 DLC. These differences are as follows:

  • All 16-bit segment offsets in command control blocks have been replaced by 32-bit flat pointers.
  • The buffer pool is managed by the DLC driver. Applications can no longer define the segment size of the buffer pool or add new buffers to the pool. However, the application must always check the size field in the buffer header.
  • The members of the command control block that are specific to IBM Token-Ring hardware have been removed. These members are not available on Ethernet adapters.
  • Win32 events replace OS/2 semaphores as the mechanism used to signal the completion of asynchronous commands.
  • Global resources that were shared by all applications are now available to each application separately. These resources include functional addresses, group addresses, link stations, SAP stations, and direct stations.
  • Applications can define a 48-bit multicast address on Ethernet adapters using the LLC_DIR_SET_MULTICAST_ADDRESS command. This overwrites the 32-bit broadcast address set by the LLC_DIR_SET_GROUP_ADDRESS command.
  • Applications can send several frames from a DLC station with the LLC_TRANSMIT_FRAMES command.
  • Windows NT/2000 or later: The application identifier and application key members of the command control block are obsolete. They have been superseded by an optional security descriptor in the LLC_EXTENDED_ADAPTER_PARMS structure.


DLC Differences Between Windows NT and Windows 95/98

There are significant differences between the Win32 DLC implementation on Windows NT/Windows 2000 and the Win32 DLC implementation on Windows 95/98. These differences are as follows:

  • Windows NT/Windows 2000 provides extensions for security, multiple processors, and Unicode character strings. These are not supported by Windows 95/98.
  • Windows 95/98 supports the application identifier member of the command control block in the uchReserved2 member. On Windows NT/Windows 2000, this member and the application key member have been superseded by an optional security descriptor in the LLC_EXTENDED_ADAPTER_PARMS structure.
  • Windows 95/98 supports polling the uchDlcStatus member of the command control block to check for command completion. This method is unreliable on Windows NT/Windows 2000, so an application that uses it successfully on Windows 95/98 may fail on Windows NT/Windows 2000.
  • Windows 95/98 allows an application to issue an LLC_DIR_STATUS command before it issues an LLC_DIR_OPEN_ADAPTER command. Windows NT/Windows 2000 does not support this behavior.
  • Windows 95/98 does not support multiple logical adapters.
  • Windows 95/98 does not have direct station support that is global to all applications.


DLC Reference

The following elements are used in DLC.

  • DLC Functions
  • DLC Structures


DLC Functions

The following function is used in DLC.

AcsLan


AcsLan

The AcsLan function communicates with IBM mainframes or network peripheral devices, such as printers connected directly to the network, by using the data link control (DLC) protocol. You can submit commands by filling in a command control block (CCB) structure, LLC_CCB, and then calling AcsLan.

Commands submitted through AcsLan can complete synchronously or asynchronously. The DLC driver, not the caller, determines how a command completes.

Whistler DLC will no longer be supported. For more information, see Network Protocol Support in Windows.

ACSLAN_STATUS AcsLan(
  PLLC_CCB pCcb,       // command control block
  PLLC_CCB *ppBadCcb   // invalid CCB
);

Parameters

pCcb
[in/out] Pointer to an LLC_CCB structure describing the command to be performed.
ppBadCcb
[out] Pointer to a pointer to an LLC_CCB structure. Use this parameter when you chain DLC commands. If the parameter is not NULL on input, this pointer will receive a pointer to the first invalid LLC_CCB structure in the chain.

Return Values

The function returns an ACSLAN_STATUS value. ACSLAN_STATUS is an enumerated type. The following values are defined.

Value | Meaning
ACSLAN_STATUS_COMMAND_ACCEPTED | The command has been processed and passed to the DLC driver. Asynchronous commands may or may not be completed. Check the uchDlcStatus member in the LLC_CCB structure to determine whether the command succeeded.
ACSLAN_STATUS_INVALID_CCB_POINTER | A pointer in the LLC_CCB structure, or the parameter table is invalid.
ACSLAN_STATUS_CCB_IN_ERROR | A problem was detected with the LLC_CCB structure. Check the values in the structure and resubmit it.
ACSLAN_STATUS_CHAINED_CCB_IN_ERROR | A problem was detected with an LLC_CCB structure in a chain of LLC_CCB structures.
ACSLAN_STATUS_SYSTEM_ERROR | This value is not used.
ACSLAN_STATUS_SYSTEM_STATUS | This value is not used.
ACSLAN_STATUS_INVALID_COMMAND | The command in the uchDlcCommand member of the LLC_CCB structure is unrecognized.

Requirements

Windows NT/2000 or later: Requires Windows 2000 and earlier.
Windows 95/98/Me: Requires Windows 95 or later.
Header: Declared in Dlcapi.h.
Library: Use Dlcapi.lib.

See Also

The DLC Interface Overview, DLC Functions, LLC_CCB


DLC Structures

The following structures are used in DLC.

CCB_PARMS
DLC_LINK_LOG
DLC_SAP_LOG
LLC_ADAPTER_LOG
LLC_ADAPTER_LOG_ETH
LLC_ADAPTER_LOG_TR
LLC_ADAPTER_OPEN_PARMS
LLC_BUFFER
LLC_BUFFER_CREATE_PARMS
LLC_BUFFER_FREE_PARMS
LLC_BUFFER_GET_PARMS
LLC_CCB
LLC_CONTIGUOUS_BUFFER
LLC_DIR_INITIALIZE_PARMS
LLC_DIR_MULTICAST_ADDRESS
LLC_DIR_OPEN_ADAPTER_PARMS
LLC_DIR_OPEN_DIRECT_PARMS
LLC_DIR_READ_LOG_BUFFER
LLC_DIR_READ_LOG_PARMS
LLC_DIR_SET_EFLAG_PARMS
LLC_DIR_STATUS_PARMS
LLC_DIRECT_LOG
LLC_DLC_CONNECT_PARMS
LLC_DLC_LOG_BUFFER
LLC_DLC_MODIFY_PARMS
LLC_DLC_OPEN_SAP_PARMS
LLC_DLC_OPEN_STATION_PARMS
LLC_DLC_PARMS
LLC_DLC_REALLOCATE_PARMS
LLC_DLC_SET_THRESHOLD_PARMS
LLC_DLC_STATISTICS_PARMS
LLC_EXTENDED_ADAPTER_PARMS
LLC_NEXT_BUFFER
LLC_NOT_CONTIGUOUS_BUFFER
LLC_READ_PARMS
LLC_RECEIVE_PARMS
LLC_TRANSMIT_PARMS
LLC_XMIT_BUFFER


CCB_PARMS

The CCB_PARMS union represents the DLC parameter table. You can present the parameter table as a pointer to a structure, two USHORT values, an array of four UCHAR values, or a single ULONG value. You pass a pointer to this structure to the AcsLan function, through the u member of the LLC_CCB structure.

Whistler DLC will no longer be supported. For more information, see Network Protocol Support in Windows.

typedef union {
  PLLC_PARMS pParameterTable;
  struct {
      USHORT usStationId;
      USHORT usParameter;
  } dlc;
  struct {
      USHORT usParameter0;
      USHORT usParameter1;
  } dir;
  UCHAR auchBuffer[4];
  ULONG ulParameter;
} CCB_PARMS;

Members

pParameterTable
Specifies a pointer to a structure in the LLC_PARMS union that represents the parameter table. The LLC_PARMS union represents all parameter table structures for DLC. The DLC command determines the particular structure to use, as shown in the following table.
Command | Parameter table
LLC_BUFFER_CREATE | LLC_BUFFER_CREATE_PARMS
LLC_BUFFER_FREE | LLC_BUFFER_FREE_PARMS
LLC_BUFFER_GET | LLC_BUFFER_GET_PARMS
LLC_DIR_INITIALIZE | LLC_DIR_INITIALIZE_PARMS
LLC_DIR_OPEN_ADAPTER | LLC_DIR_OPEN_ADAPTER_PARMS
LLC_DIR_OPEN_DIRECT | LLC_DIR_OPEN_DIRECT_PARMS
LLC_DIR_READ_LOG | LLC_DIR_READ_LOG_PARMS
LLC_DIR_SET_EXCEPTION_FLAGS | LLC_DIR_SET_EFLAG_PARMS
LLC_DIR_SET_MULTICAST_ADDRESS | LLC_DIR_MULTICAST_ADDRESS
LLC_DIR_STATUS | LLC_DIR_STATUS_PARMS
LLC_DLC_CONNECT_STATION | LLC_DLC_CONNECT_PARMS
LLC_DLC_MODIFY | LLC_DLC_MODIFY_PARMS
LLC_DLC_OPEN_SAP | LLC_DLC_OPEN_SAP_PARMS
LLC_DLC_OPEN_STATION | LLC_DLC_OPEN_STATION_PARMS
LLC_DLC_REALLOCATE_STATIONS | LLC_DLC_REALLOCATE_PARMS
LLC_DLC_SET_THRESHOLD | LLC_DLC_SET_THRESHOLD_PARMS
LLC_DLC_STATISTICS | LLC_DLC_STATISTICS_PARMS
LLC_READ | LLC_READ_PARMS
LLC_RECEIVE | LLC_RECEIVE_PARMS
LLC_TRANSMIT_DIR_FRAME | LLC_TRANSMIT_PARMS
LLC_TRANSMIT_I_FRAME | LLC_TRANSMIT_PARMS
LLC_TRANSMIT_TEST_CMD | LLC_TRANSMIT_PARMS
LLC_TRANSMIT_UI_FRAME | LLC_TRANSMIT_PARMS
LLC_TRANSMIT_XID_CMD | LLC_TRANSMIT_PARMS
LLC_TRANSMIT_XID_RESP_FINAL | LLC_TRANSMIT_PARMS
LLC_TRANSMIT_XID_RESP_NOT_FINAL | LLC_TRANSMIT_PARMS

usStationId
Specifies the station identifier.
usParameter
Specifies an optional parameter.
usParameter0
The first optional parameter.
usParameter1
The second optional parameter.
auchBuffer
Specifies a group or functional address.
ulParameter
Specifies the parameter table.

Remarks

The following table shows how the usStationId, usParameter, usParameter0, usParameter1, auchBuffer, and ulParameter members are used by the commands whose parameter tables are not represented by a unique LLC_PARMS structure.

Command | Parameter table
LLC_DIR_SET_FUNCTIONAL_ADDRESS | usParameter0 and usParameter1 contain the address to be set or reset.
LLC_DIR_SET_GROUP_ADDRESS | usParameter0 contains the group address to be set.
LLC_DIR_TIMER_CANCEL | usParameter0 and usParameter1 contain the address of the timer to be canceled.
LLC_DIR_TIMER_CANCEL_GROUP | usParameter0 and usParameter1 contain the timer completion flag.
LLC_DIR_TIMER_SET | usParameter0 contains the timer value.
LLC_DLC_CLOSE_SAP | usStationId contains the station identifier of the SAP to be closed and usParameter receives the station identifier of any link station on the SAP that is not closed.
LLC_DLC_CLOSE_STATION | usStationId contains the station identifier of the station to be closed.
LLC_DLC_FLOW_CONTROL | usStationId contains the station identifier and usParameter specifies one of the following options: LLC_RESET_LOCAL_BUSY_USER LLC_RESET_LOCAL_BUSY_BUFFER LLC_SET_LOCAL_BUSY_USER
LLC_DLC_RESET | usStationId contains the station identifier of the station to be reset. A value of zero defines all SAPs and all link stations. A value of 0xnn00 defines SAP nn and all its link stations.
LLC_READ_CANCEL | ulParameter contains the address of the command control block of the read command to be canceled.
LLC_RECEIVE_CANCEL | usStationId contains the station identifier of the SAP or link station of a pending LLC_RECEIVE command that is to be canceled.
LLC_RECEIVE_MODIFY | usStationId contains the station identifier and usParameter specifies the length of the user data in the buffers.

Remarks

If an LLC_READ command is pending that requests notification of data to be received, the cancellation of the LLC_RECEIVE command does not affect the LLC_READ command. After the LLC_RECEIVE_CANCEL command completes, the pNext member of the LLC_CCB structure contains the address of the canceled LLC_RECEIVE command.

Requirements

Windows NT/2000 or later: Requires Windows 2000 and earlier.
Windows 95/98/Me: Requires Windows 95 or later.
Header: Declared in Dlcapi.h.

See Also

The DLC Interface Overview, DLC Structures, AcsLan, LLC_CCB


DLC_LINK_LOG

The DLC_LINK_LOG structure represents the link log. Specify this structure in the LLC_DLC_LOG_BUFFER union.

Whistler DLC will no longer be supported. For more information, see Network Protocol Support in Windows.

typedef struct {
  USHORT cI_FramesTransmitted;
  USHORT cI_FramesReceived;
  UCHAR cI_FrameReceiveErrors;
  UCHAR cI_FrameTransmissionErrors;
  USHORT cT1_ExpirationCount;
  UCHAR uchLastCmdRespReceived;
  UCHAR uchLastCmdRespTransmitted;
  UCHAR uchPrimaryState;
  UCHAR uchSecondaryState;
  UCHAR uchSendStateVariable;
  UCHAR uchReceiveStateVariable;
  UCHAR uchLastNr;
  UCHAR cbLanHeader;
  UCHAR auchLanHeader[32];
} DLC_LINK_LOG, *PDLC_LINK_LOG;

Members

cI_FramesTransmitted
Number of I frames transmitted.
cI_FramesReceived
Number of I frames received.
cI_FrameReceiveErrors
Number of I frame receive errors.
cI_FrameTransmissionErrors
Number of I frame transmission errors.
cT1_ExpirationCount
Number of times T1 expired (other than in data-transfer mode).
uchLastCmdRespReceived
Last command or response received.
uchLastCmdRespTransmitted
Last command or response sent.
uchPrimaryState
Link primary state.
uchSecondaryState
Link secondary state.
uchSendStateVariable
Send state variable.
uchReceiveStateVariable
Receive state variable.
uchLastNr
Last received NR.
cbLanHeader
Length of the network header used in station transmissions.
auchLanHeader
Network header used in station transmissions.

Requirements

Windows NT/2000 or later: Requires Windows 2000 and earlier.
Windows 95/98/Me: Requires Windows 95 or later.
Header: Declared in Dlcapi.h.

See Also

The DLC Interface Overview, DLC Structures, AcsLan, LLC_DLC_LOG_BUFFER


DLC_SAP_LOG

The DLC_SAP_LOG structure represents the SAP log. Specify this structure in the LLC_DLC_LOG_BUFFER union.

Whistler DLC will no longer be supported. For more information, see Network Protocol Support in Windows.

typedef struct {
  ULONG cTransmittedFrames;
  ULONG cReceivedFrames;
  ULONG cDiscardedFrames;
  ULONG cDataLost;
  USHORT cBuffersAvailable;
} DLC_SAP_LOG, *PDLC_SAP_LOG;

Members

cTransmittedFrames
Number of frames transmitted.
cReceivedFrames
Number of frames received.
cDiscardedFrames
Number of frames discarded (there was no LLC_RECEIVE command).
cDataLost
Number of times data was lost. Inadequate SAP buffers can cause data loss.
cBuffersAvailable
Number of buffers available in the SAP buffer pool.

Requirements

Windows NT/2000 or later: Requires Windows 2000 and earlier.
Windows 95/98/Me: Requires Windows 95 or later.
Header: Declared in Dlcapi.h.

See Also

The DLC Interface Overview, DLC Structures, AcsLan, LLC_DLC_LOG_BUFFER


LLC_ADAPTER_LOG

The LLC_ADAPTER_LOG union represents the adapter log. Specify this structure in the LLC_DIR_READ_LOG_BUFFER structure.

Whistler DLC will no longer be supported. For more information, see Network Protocol Support in Windows.

typedef union {
  LLC_ADAPTER_LOG_TR Tr;
  LLC_ADAPTER_LOG_ETH Eth;
} LLC_ADAPTER_LOG, *PLLC_ADAPTER_LOG;

Members

Tr
Specifies the address of an LLC_ADAPTER_LOG_TR structure representing the adapter log for a Token-Ring network.
Eth
Specifies the address of an LLC_ADAPTER_LOG_ETH structure representing the adapter log for an Ethernet network.

Requirements

Windows NT/2000 or later: Requires Windows 2000 and earlier.
Windows 95/98/Me: Requires Windows 95 or later.
Header: Declared in Dlcapi.h.

See Also

The DLC Interface Overview, DLC Structures, AcsLan, LLC_ADAPTER_LOG_ETH, LLC_ADAPTER_LOG_TR, LLC_DIR_READ_LOG_BUFFER


LLC_ADAPTER_LOG_ETH

The LLC_ADAPTER_LOG_ETH structure represents the adapter log for an ethernet network. Specify this structure in the LLC_ADAPTER_LOG structure.

Whistler DLC will no longer be supported. For more information, see Network Protocol Support in Windows.

typedef struct {
  UCHAR cCRC_Error;
  UCHAR uchReserved1;
  UCHAR cAlignmentError;
  UCHAR uchReserved2;
  UCHAR cTransmitError;
  UCHAR uchReserved3;
  UCHAR cCollisionError;
  UCHAR cReceiveCongestion;
  UCHAR uchReserved[6];
} LLC_ADAPTER_LOG_ETH, *PLLC_ADAPTER_LOG_ETH;

Members

cCRC_Error
CRC errors.
uchReserved1
Reserved.
cAlignmentError
Alignment errors.
uchReserved2
Reserved.
cTransmitError
Transmit errors.
uchReserved3
Reserved.
cCollisionError
Collision errors.
cReceiveCongestion
Receive congestion errors.
uchReserved
Reserved.

Requirements

Windows NT/2000 or later: Requires Windows 2000 and earlier.
Windows 95/98/Me: Requires Windows 95 or later.
Header: Declared in Dlcapi.h.

See Also

The DLC Interface Overview, DLC Structures, AcsLan, LLC_ADAPTER_LOG


LLC_ADAPTER_LOG_TR

The LLC_ADAPTER_LOG_TR structure represents the adapter log for a Token-Ring network. Specify this structure in the LLC_ADAPTER_LOG structure.

Whistler DLC will no longer be supported. For more information, see Network Protocol Support in Windows.

typedef struct {
  UCHAR cLineError;
  UCHAR cInternalError;
  UCHAR cBurstError;
  UCHAR cAC_Error;
  UCHAR cAbortDelimiter;
  UCHAR uchReserved1;
  UCHAR cLostFrame;
  UCHAR cReceiveCongestion;
  UCHAR cFrameCopiedError;
  UCHAR cFrequencyError;
  UCHAR cTokenError;
  UCHAR uchReserved2;
  UCHAR uchReserved3;
  UCHAR uchReserved4;
} LLC_ADAPTER_LOG_TR, *PLLC_ADAPTER_LOG_TR;

Members

cLineError
Line error.
cInternalError
Internal error.
cBurstError
Burst error.
cAC_Error
A/C error.
cAbortDelimiter
Abort delimiter.
uchReserved1
Reserved.
cLostFrame
Lost frame.
cReceiveCongestion
Receive congestion.
cFrameCopiedError
Frame copied error.
cFrequencyError
Frequency error.
cTokenError
Token error.
uchReserved2
Reserved.
uchReserved3
Reserved.
uchReserved4
Reserved.

Requirements

Windows NT/2000 or later: Requires Windows 2000 and earlier.
Windows 95/98/Me: Requires Windows 95 or later.
Header: Declared in Dlcapi.h.

See Also

The DLC Interface Overview, DLC Structures, AcsLan, LLC_ADAPTER_LOG


LLC_ADAPTER_OPEN_PARMS

The LLC_ADAPTER_OPEN_PARMS structure represents the open parameters for the LLC_DIR_OPEN_ADAPTER command. You pass a pointer to this structure in the LLC_DIR_OPEN_ADAPTER_PARMS structure.

Whistler DLC will no longer be supported. For more information, see Network Protocol Support in Windows.

typedef struct {
  USHORT usOpenErrorCode;
  USHORT usOpenOptions;
  UCHAR auchNodeAddress[6];
  UCHAR auchGroupAddress[4];
  UCHAR auchFunctionalAddress[4];
  USHORT usReserved1;
  USHORT usReserved2;
  USHORT usMaxFrameSize;
  USHORT usReserved3[4];
  USHORT usBringUps;
  USHORT InitWarnings;
  USHORT usReserved4[3];
} LLC_ADAPTER_OPEN_PARMS, *PLLC_ADAPTER_OPEN_PARMS;

Members

usOpenErrorCode
Indicates the result of the open adapter testing.
usOpenOptions
Specifies the open options for the adapter. This member is a 16-bit value. Setting the various bits enables different options, as described in the following table.
Bit | Description
15 | The adapter will not attach itself to the network. Instead, it causes all transmitted user data to be wrapped as received data.
14 | Disables hard errors.
13 | Disables soft errors.
12 | Passes, as direct interface data, all adapter-class MAC frames that are received but not supported by the adapter. Otherwise, these frames are ignored.
11 | Passes, as direct interface data, all attention MAC frames that are not the same as the last attention MAC frame received. Otherwise, these frames are ignored.
10 | Reserved; should be 0.
9 | Reserved; should be 0.
8 | Participates in monitor contention. Otherwise, this adapter does not participate.
7 | Passes, as direct interface data, the first beacon MAC frame and all subsequent beacon MAC frames that have a change in the source address or the beacon type.
6 | Reserved; should be 0.
5 | Prevents the adapter from becoming a monitor during the open process. This bit is implemented only in 16/4 adapters.
4 | Selects no early token releases for an adapter operating at 16 Mbps. Otherwise, use the early token release.
3 | Reserved; should be 0.
2 | Reserved; should be 0.
1 | Reserved; should be 0.
0 | Reserved; should be 0.

auchNodeAddress
Specifies the LAN address of the adapter.
auchGroupAddress
Specifies the group address for which the adapter will receive messages. If the value is zero, no group address is set.
auchFunctionalAddress
Specifies the functional address for which the adapter will receive messages. The most significant bit and the least significant bit are ignored by the adapter. If the value is zero, no functional address is set.
usReserved1
Reserved.
usReserved2
Reserved.
usMaxFrameSize
The maximum frame size defined in NDIS.
usReserved3
Reserved.
usBringUps
Indicates the result of adapter bring-up testing for IBM Token-Ring network adapters. This member is not used on the PC Network or on Ethernet.
InitWarnings
Indicates that a nonfatal error occurred during initialization of the protocol drivers. This member can be one of the following values.
Value | Meaning
0 | No errors detected during configuration parameter processing.
1 | No configuration parameters found.
2 | Errors detected during configuration parameter processing; default values were used.

usReserved4
Reserved.

Requirements

Windows NT/2000 or later: Requires Windows 2000 and earlier.
Windows 95/98/Me: Requires Windows 95 or later.
Header: Declared in Dlcapi.h.

See Also

The DLC Interface Overview, DLC Structures, AcsLan, LLC_DIR_OPEN_ADAPTER_PARMS


LLC_BUFFER

The LLC_BUFFER union represents the buffer for received data. Specify this structure in the LLC_RECEIVE_PARMS structure.

Whistler DLC will no longer be supported. For more information, see Network Protocol Support in Windows.

typedef union _LLC_BUFFER LLC_BUFFER, *PLLC_BUFFER;
union _LLC_BUFFER {

  PLLC_BUFFER pNext;

  LLC_NEXT_BUFFER Next;

  struct LlcNextBuffer {
      LLC_NEXT_BUFFER Header;
      UCHAR auchData[];
  } Buffer;

  LLC_NOT_CONTIGUOUS_BUFFER NotContiguous;

  struct {
      LLC_NOT_CONTIGUOUS_BUFFER Header;
      UCHAR auchData[];
  } NotCont;

  LLC_CONTIGUOUS_BUFFER Contiguous;

  struct {
      LLC_CONTIGUOUS_BUFFER Header;
      UCHAR auchData[];
  } Cont;

};

Members

pNext
Specifies the address of an LLC_BUFFER structure representing the next buffer.
Next
The LLC_NEXT_BUFFER structure representing the next buffer.
Header
The LLC_NEXT_BUFFER structure representing the header.
auchData
Specifies the address of the data.
NotContiguous
The LLC_NOT_CONTIGUOUS_BUFFER structure representing the next buffer.
Header
The LLC_NOT_CONTIGUOUS_BUFFER structure representing the header.
auchData
Specifies the address of the data.
Contiguous
The LLC_CONTIGUOUS_BUFFER structure representing the next buffer.
Header
The LLC_CONTIGUOUS_BUFFER structure representing the header.
auchData
Specifies the address of the data.

Remarks

Media Access Control (MAC) frames consist of a LAN header followed by a data field. Non-MAC frames consist of a LAN header, a DLC header, and a data field. The application provides the data in the data field. The DLC header varies depending on the frame type: frames used by Type 2 protocols have a 4-byte DLC header and frames used by Type 1 protocols have a 3-byte header. The frame type also determines what information the application provides and how it is provided, as shown in the following table.

Frame type | Description
MAC Frames | The application provides the complete LAN header and the data field. The source address in the LAN header is overwritten with the address used by the adapter.
I-Frames | The application provides only the data. The information used to build the headers is provided by the LLC_DLC_OPEN_STATION and LLC_DLC_CONNECT_STATION commands.
Direct Frames | The application provides the LAN header and the data in its own buffers. It provides the information to build the headers with one of the LLC_TRANSMIT commands. The command overwrites the source address in the LAN header with the address used by the adapter.

When you use more than one buffer to receive a frame, the format for the first buffer is different from the format of the other buffers used to contain the frame.

Requirements

Windows NT/2000 or later: Requires Windows 2000 and earlier.
Windows 95/98/Me: Requires Windows 95 or later.
Header: Declared in Dlcapi.h.

See Also

The DLC Interface Overview, DLC Structures, AcsLan, LLC_CONTIGUOUS_BUFFER, LLC_NEXT_BUFFER, LLC_NOT_CONTIGUOUS_BUFFER, LLC_RECEIVE_PARMS


LLC_BUFFER_CREATE_PARMS

The LLC_BUFFER_CREATE_PARMS structure is the DLC parameter table for the LLC_BUFFER_CREATE command. You pass a pointer to this structure using the pParameterTable member of the CCB_PARMS union.

Whistler DLC will no longer be supported. For more information, see Network Protocol Support in Windows.

typedef struct {
  HANDLE hBufferPool;
  PVOID pBuffer;
  ULONG cbBufferSize;
  ULONG cbMinimumSizeThreshold;
} LLC_BUFFER_CREATE_PARMS, *PLLC_BUFFER_CREATE_PARMS;

Members

hBufferPool
Handle to the created buffer pool.
pBuffer
Specifies the address of an application-supplied buffer. The buffer can be statically allocated or dynamically allocated from the heap. The minimum size requirement is 0x2000. The buffer manager allocates all DLC buffers from this virtual buffer. This buffer area must not be used for anything else.
cbBufferSize
The total size of the buffer, pBuffer, in bytes.
cbMinimumSizeThreshold
The minimum locked size. The buffer manager tries to keep at least this much free space in the buffer pool. This parameter should be large enough to hold all data received between two sequential LLC_READ commands.

Remarks

Win32 DLC supports one buffer pool per process. After you open an adapter using the LLC_DIR_OPEN_ADAPTER command, you must give the DLC driver a buffer pool by using the LLC_BUFFER_CREATE command.

You should carefully select the total and minimum buffer pool sizes, because the memory manager has a dynamic quota of available pages for each process. Your application may not run if it tries to allocate a buffer pool that is too large.

Requirements

Windows NT/2000 or later: Requires Windows 2000 and earlier.
Windows 95/98/Me: Requires Windows 95 or later.
Header: Declared in Dlcapi.h.

See Also

The DLC Interface Overview, DLC Structures, AcsLan, CCB_PARMS


LLC_BUFFER_FREE_PARMS

The LLC_BUFFER_FREE_PARMS structure is the DLC parameter table for the LLC_BUFFER_FREE command. You pass a pointer to this structure using the pParameterTable member of the CCB_PARMS union.

Whistler DLC will no longer be supported. For more information, see Network Protocol Support in Windows.

typedef struct {
  USHORT usReserved1;
  USHORT cBuffersLeft;
  ULONG ulReserved;
  PLLC_XMIT_BUFFER pFirstBuffer;
} LLC_BUFFER_FREE_PARMS, *PLLC_BUFFER_FREE_PARMS;

Members

usReserved1
Reserved.
cBuffersLeft
The number of free buffer segments in the pool after the command completes.
ulReserved
Reserved.
pFirstBuffer
Specifies the address of an LLC_XMIT_BUFFER structure representing the first buffer to be added to the pool.

Remarks

The buffers to be freed must have been obtained using the LLC_BUFFER_GET command.

Requirements

Windows NT/2000 or later: Requires Windows 2000 and earlier.
Windows 95/98/Me: Requires Windows 95 or later.
Header: Declared in Dlcapi.h.

See Also

The DLC Interface Overview, DLC Structures, AcsLan, CCB_PARMS, LLC_XMIT_BUFFER


LLC_BUFFER_GET_PARMS

The LLC_BUFFER_GET_PARMS structure is the DLC parameter table for the LLC_BUFFER_GET command. You pass a pointer to this structure using the pParameterTable member of the CCB_PARMS union.

Whistler DLC will no longer be supported. For more information, see Network Protocol Support in Windows.

typedef struct {
  USHORT usReserved1;
  USHORT cBuffersLeft;
  USHORT cBuffersToGet;
  USHORT cbBufferSize;
  PLLC_XMIT_BUFFER pFirstBuffer;
} LLC_BUFFER_GET_PARMS, *PLLC_BUFFER_GET_PARMS;

Members

usReserved1
Reserved.
cBuffersLeft
The number of free buffer segments in the pool after the command completes.
cBuffersToGet
The number of buffers to get from the pool. If you specify zero, the buffer list returned can consists of segments of different sizes.
cbBufferSize
The size of the requested buffers. The system rounds this number to the next largest segment size (256, 512, 1024, 2048, or 4096).
pFirstBuffer
Specifies the address of an LLC_XMIT_BUFFER structure representing the first buffer obtained.

Remarks

If cBuffersToGet is zero and cbBufferSize is the size of the frame that is copied to the buffers, the system returns enough buffers to contain the whole frame, including its buffer headers. Then cBuffersLeft receives the size of free locked memory, in 256-byte blocks, or 65536 if the actual size is about 1 MB.

If the pool contains an inadequate number of buffers, the command fails with the status code LLC_STATUS_INADEQUATE_BUFFERS.

Requirements

Windows NT/2000 or later: Requires Windows 2000 and earlier.
Windows 95/98/Me: Requires Windows 95 or later.
Header: Declared in Dlcapi.h.

See Also

The DLC Interface Overview, DLC Structures, AcsLan, CCB_PARMS, LLC_XMIT_BUFFER


LLC_CCB

The LLC_CCB structure represents a command control block. You pass a pointer to this structure to the AcsLan function.

Whistler DLC will no longer be supported. For more information, see Network Protocol Support in Windows.

typedef struct _LLC_CCB {
  UCHAR uchAdapterNumber;
  UCHAR uchDlcCommand;
  UCHAR uchDlcStatus;
  UCHAR uchReserved1;
  struct _LLC_CCB *pNext;
  ULONG ulCompletionFlag;
  CCB_PARMS u;
  HANDLE hCompletionEvent;
  UCHAR uchReserved2;
  UCHAR uchReadFlag;
  USHORT usReserved3
} LLC_CCB, *PLLC_CCB;

Members

uchAdapterNumber
Specifies adapter number 0 or 1.
uchDlcCommand
Specifies the command code. The following command codes are supported.
Code | Meaning
LLC_BUFFER_CREATE | Creates a new DLC buffer pool and returns its handle. The application must open at least one adapter before it can create the buffer pool.
LLC_BUFFER_FREE | Returns one or more buffers to the adapter pool. The buffers must have been obtained with the LLC_BUFFER_GET command.
LLC_BUFFER_GET | Returns the requested buffers. You can retrieve several buffers of the same size or an optimal set of buffers for the specified frame size.
LLC_DIR_
CLOSE_ADAPTER 		Closes the adapter logically, releasing its resources and canceling any pending commands. Open SAPs or link stations are reset before the completion of this command. Canceled commands return the error code LLC_STATUS_CANCELLED_BY_SYSTEM_ACTION. Functional address bits are reset.

The pNext member receives the address of a queue of CCBs terminated by this command.
LLC_DIR_CLOSE_DIRECT | Releases ownership of all direct stations. If you use an LLC_READ command to post this command, the system returns the buffers from the direct buffer pool in the parameter table.
LLC_DIR_INITIALIZE | Resets the network adapter, returns any pending commands, and releases buffer resources. For security reasons, the command resets the adapter physically only if it was not functioning normally when you issued the command.
LLC_DIR_INTERRUPT | This command does not do anything. No parameter table is required.
LLC_DIR_OPEN_ADAPTER | Prepares the protocol drivers for network communication. The adapter must be in a logically closed state for this command to succeed.
LLC_DIR_OPEN_DIRECT | Gives the application ownership of the direct station and enables it to receive frames using the LLC_RECEIVE command.
LLC_DIR_READ_LOG | Reads and resets the adapter logs. The system transfers the log data to the buffer in the parameter table.
LLC_DIR_SET_EXCEPTION_FLAGS | Defines user-notification flags so the system notifies the application of exception conditions.
LLC_DIR_SET_FUNCTIONAL_ADDRESS | Sets or resets the functional addresses for the adapter to receive messages.
LLC_DIR_SET_GROUP_ADDRESS | Sets or resets the group address for which the adapter will receive messages. Only one application can set a group address for a Token-Ring adapter. This command can fail if the Ethernet adapter does not have an available multicast address.
LLC_DIR_SET_MULTICAST_ADDRESS | Sets a 48-bit multicast address for the current DLC adapter context. The application must issue this command before it can receive multicasts. This command is supported only on Ethernet networks and is an alternative to the LLC_DIR_SET_GROUP_ADDRESS command. This command can fail if the Ethernet adapter does not have an available multicast address. A value of zero removes the previous multicast address.
LLC_DIR_STATUS | Reads the general status information. You can issue this command before the LLC_DIR_OPEN_ADAPTER command, but after the LLC_DIR_INITIALIZE command.
LLC_DIR_TIMER_CANCEL | Cancels a timer that was previously initiated by an LLC_DIR_TIMER_SET command.
LLC_DIR_TIMER_CANCEL_GROUP | Cancels a group of timer commands that were previously initiated by the LLC_DIR_TIMER_SET command.
LLC_DIR_TIMER_SET | Initiates a programmable timer to expire after a designated interval.
LLC_DLC_CLOSE_SAP | Closes a SAP. The SAP cannot close unless all link stations are closed.
LLC_DLC_CLOSE_STATION | Closes a link station.
LLC_DLC_CONNECT_STATION | Starts or completes a connection between the local and remote link stations. Both the local station and the remote station must issue the command to establish the connection.
LLC_DLC_FLOW_CONTROL | Controls the flow of data across a single link station on a SAP or across every link station on a SAP. You should issue this command immediately after a link station enters a local busy state. The driver clears the busy state when there are enough free buffers to receive more frames.
LLC_DLC_MODIFY | Modifies the work values of an open link station or the default values of a SAP.
LLC_DLC_OPEN_SAP | Activates a SAP and reserves a number of link stations for the SAP.
LLC_DLC_OPEN_STATION | Allocates resources for a link station.
LLC_DLC_REALLOCATE_STATIONS | Reallocates the number of link stations allocated to a SAP. When reducing the number of stations, the command returns the deallocated stations to the adapter pool. When increasing the number of stations, the command assigns new stations from the adapter pool.
LLC_DLC_RESET | Resets the SAPs and their associated link stations. Affected resources are freed, and pending commands are terminated.
LLC_DLC_SET_THRESHOLD | Sets a threshold for the SAP or direct station's buffer pool. The application is notified whenever the number of buffers in the pool falls below this threshold.
LLC_DLC_STATISTICS | Reads and optionally resets the DLC log. The log is transferred to the buffer indicated by the parameter table.
LLC_READ | Performs a read operation. The operation is complete when the system sets the uchDlcStatus member and the sets the hCompletionEvent event to the signaled state. The data and optional header begin at offset 64.
LLC_READ_CANCEL | Cancels a pending LLC_READ command for the application.
LLC_RECEIVE | Receives data. The command fails if the application has not created a buffer pool.
LLC_RECEIVE_CANCEL | Cancels a pending LLC_RECEIVE command.
LLC_RECEIVE_MODIFY | Receives data and puts some of it into a user buffer.
LLC_TRANSMIT_DIR_FRAME | Transmits data to the direct station.
LLC_TRANSMIT_I_FRAME | Transmits information data to a link station.
LLC_TRANSMIT_TEST_CMD | Requests the adapter to transmit a test command frame with the poll bit set. You can only use this command with a SAP.
LLC_TRANSMIT_UI_FRAME | Transmits unnumbered information data for a SAP. You can use this command only with a SAP.
LLC_TRANSMIT_XID_CMD | Transmits an XID command with the poll bit set on. You can use this command only with a SAP.
LLC_TRANSMIT_XID_RESP_FINAL | Transmits an XID response with the final bit on. You can only use this command with a SAP opened with SAP options specifying that the application will handle XID commands.
LLC_TRANSMIT_XID_RESP_NOT_FINAL | Transmits an XID response with the final bit off. You can only use this command with a SAP opened with SAP options specifying that the application will handle XID commands.

uchDlcStatus
Receives the command completion code. This value is set to LLC_STATUS_PENDING when the command is received. It is set to an appropriate code when the command is completed. For a list of the command completion codes, see the following Remarks section.
uchReserved1
Reserved.
pNext
Specifies the next command control block in the chain. Otherwise, set this parameter to NULL.
ulCompletionFlag
An optional flag set when an LLC_READ command is completed. If you set this parameter to zero before the command is issued, it is not used.
u
Specifies the address of a CCB_PARMS structure representing the parameter table.
hCompletionEvent
Specifies a handle to an event that you can use to check for command completion. Otherwise, set this parameter to zero. When the command is completed, it sets the event to the signaled state.
uchReserved2
Windows NT/2000 or later: Not used.

Windows 95/98/Me: The identifier of the application issuing the command. This value is returned by the LLC_DIR_OPEN_ADAPTER command and is used for all subsequent commands.

uchReadFlag
Specifies that an LLC_READ command control block is chained in this command. Otherwise, set this parameter to zero.
usReserved3
Reserved.

Remarks

The uchDlcStatus member receives an LLC_STATUS value representing the command completion code. LLC_STATUS is an enumerated type. The following completion codes are defined:

Code | Name
1 | LLC_STATUS_INVALID_COMMAND
2 | LLC_STATUS_DUPLICATE_COMMAND
3 | LLC_STATUS_ADAPTER_OPEN
4 | LLC_STATUS_ADAPTER_CLOSED
5 | LLC_STATUS_PARAMETER_MISSING
6 | LLC_STATUS_INVALID_OPTION
7 | LLC_STATUS_COMMAND_CANCELLED_FAILURE
10 | LLC_STATUS_CANCELLED_BY_USER
12 | LLC_STATUS_SUCCESS_NOT_OPEN
17 | LLC_STATUS_TIMER_ERROR
18 | LLC_STATUS_NO_MEMORY
21 | LLC_STATUS_LOST_LOG_DATA
22 | LLC_STATUS_BUFFER_SIZE_EXCEEDED
24 | LLC_STATUS_INVALID_BUFFER_LENGTH
25 | LLC_STATUS_INADEQUATE_BUFFERS
26 | LLC_STATUS_USER_LENGTH_TOO_LARGE
27 | LLC_STATUS_INVALID_PARAMETER_TABLE
28 | LLC_STATUS_INVALID_POINTER_IN_CCB
29 | LLC_STATUS_INVALID_ADAPTER
32 | LLC_STATUS_LOST_DATA_NO_BUFFERS
33 | LLC_STATUS_LOST_DATA_INADEQUATE_SPACE
34 | LLC_STATUS_TRANSMIT_ERROR_FS
35 | LLC_STATUS_TRANSMIT_ERROR
39 | LLC_STATUS_LINK_NOT_TRANSMITTING
40 | LLC_STATUS_INVALID_FRAME_LENGTH
50 | LLC_STATUS_INVALID_NODE_ADDRESS
51 | LLC_STATUS_INVALID_RCV_BUFFER_LENGTH
52 | LLC_STATUS_INVALID_XMIT_BUFFER_LENGTH
64 | LLC_STATUS_INVALID_STATION_ID
65 | LLC_STATUS_LINK_PROTOCOL_ERROR
66 | LLC_STATUS_PARMETERS_EXCEEDED_MAX
67 | LLC_STATUS_INVALID_SAP_VALUE
68 | LLC_STATUS_INVALID_ROUTING_INFO
71 | LLC_STATUS_LINK_STATIONS_OPEN
74 | LLC_STATUS_INCOMPATIBLE_COMMANDS
77 | LLC_STATUS_CONNECT_FAILED
79 | LLC_STATUS_INVALID_REMOTE_ADDRESS
80 | LLC_STATUS_CCB_POINTER_FIELD
87 | LLC_STATUS_INADEQUATE_LINKS
88 | LLC_STATUS_INVALID_PARAMETER_1
92 | LLC_STATUS_DIRECT_STATIONS_NOT_ASSIGNED
93 | LLC_STATUS_DEVICE_DRIVER_NOT_INSTALLED
94 | LLC_STATUS_ADAPTER_NOT_INSTALLED
95 | LLC_STATUS_CHAINED_DIFFERENT_ADAPTERS
96 | LLC_STATUS_INIT_COMMAND_STARTED
98 | LLC_STATUS_CANCELLED_BY_SYSTEM_ACTION
101 | LLC_STATUS_NO_GDT_SELECTORS
105 | LLC_STATUS_MEMORY_LOCK_FAILED
128 | LLC_STATUS_INVALID_BUFFER_ADDRESS
129 | LLC_STATUS_BUFFER_ALREADY_RELEASED
161 | LLC_STATUS_INVALID_VERSION
162 | LLC_STATUS_NT_ERROR_STATUS
255 | LLC_STATUS_PENDING

Requirements

Windows NT/2000 or later: Requires Windows 2000 and earlier.
Windows 95/98/Me: Requires Windows 95 or later.
Header: Declared in Dlcapi.h.

See Also

The DLC Interface Overview, DLC Structures, AcsLan, CCB_PARMS


LLC_CONTIGUOUS_BUFFER

The LLC_CONTIGUOUS_BUFFER structure represents a buffer for received data. Specify this structure in the LLC_BUFFER structure.

Whistler DLC will no longer be supported. For more information, see Network Protocol Support in Windows.

typedef struct {
  PLLC_BUFFER pNextBuffer;
  USHORT cbFrame;
  USHORT cbBuffer;
  USHORT offUserData;
  USHORT cbUserData;
  USHORT usStationId;
  UCHAR uchOptions;
  UCHAR uchMsgType;
  USHORT cBuffersLeft;
  UCHAR uchRcvFS;
  UCHAR uchAdapterNumber;
  PLLC_BUFFER pNextFrame;
} LLC_CONTIGUOUS_BUFFER;

Members

pNextBuffer
Specifies the address of an LLC_BUFFER structure representing the next buffer in the frame.
cbFrame
Length of the entire frame.
cbBuffer
Length of this buffer.
offUserData
User data in this structure.
cbUserData
Length of user data.
usStationId
Station identifier.
uchOptions
Defines how the frame is received. Specify one of the following values.
Option | Description
LLC_CONTIGUOUS_MAC | The received data includes a LAN header.
LLC_CONTIGUOUS_DATA | The received data includes a LAN header and a DLC header.
LLC_NOT_CONTIGUOUS_DATA | The received data does not include the DLC header, but begins with the portion of the LAN frame that follows the DLC header.

uchMsgType
Specifies an LLC_FRAME_TYPES value representing the message type. LLC_FRAME_TYPES is an enumerated type. The following values are defined.
Value | Meaning
LLC_DIRECT_MAC | MAC frame (direct station on IBM Token-Ring network only).
LLC_I_FRAME | Information frame (link stations only).
LLC_UI_FRAME | UI frame.
LLC_XID_COMMAND_POLL | XID command (poll bit).
LLC_XID_COMMAND_NOT_POLL | XID command (not poll bit).
LLC_XID_RESPONSE_FINAL | XID response (final bit).
LLC_XID_RESPONSE_NO_FINAL | XID response (not final bit).
LLC_TEST_RESPONSE_FINAL | TEST response (final bit).
LLC_TEST_RESPONSE_NOT_FINAL | TEST response (not final bit).
LLC_DIRECT_8022 | 802.2 frame (direct station only).
LLC_DIRECT_ETHERNET_TYPE | Ethernet frame (direct station only).

cBuffersLeft
The number of basic buffer units left.
uchRcvFS
The received frame status.
uchAdapterNumber
Adapter number.
pNextFrame
Specifies the address of an LLC_BUFFER structure representing the next frame.

Requirements

Windows NT/2000 or later: Requires Windows 2000 and earlier.
Windows 95/98/Me: Requires Windows 95 or later.
Header: Declared in Dlcapi.h.

See Also

The DLC Interface Overview, DLC Structures, AcsLan, LLC_BUFFER


LLC_DIR_INITIALIZE_PARMS

The LLC_DIR_INITIALIZE_PARMS structure is the DLC parameter table for the LLC_DIR_INITIALIZE command. You pass a pointer to this structure using the pParameterTable member of the CCB_PARMS union.

Whistler DLC will no longer be supported. For more information, see Network Protocol Support in Windows.

typedef struct {
  USHORT usBringUps;
  UCHAR Reserved[30];
} LLC_DIR_INITIALIZE_PARMS, *PLLC_DIR_INITIALIZE_PARMS;

Members

usBringUps
Indicates the result of adapter bring-up testing for IBM Token-Ring network adapters. This member is not used on the PC Network or on Ethernet.
Reserved
Information specific to MS-DOS or OS/2.

Remarks

This command initializes the protocol drivers, resets all adapter tables and buffers, and directs the adapter to run the bring-up tests (IBM Token-Ring network only). The adapter's programmable timer is started. All pending commands are returned to the application that issued them. When pending commands are returned, the error code received in the uchDlcStatus member of the LLC_CCB structure is LLC_STATUS_CANCELLED_BY_SYSTEM_ACTION.

Requirements

Windows NT/2000 or later: Requires Windows 2000 and earlier.
Windows 95/98/Me: Requires Windows 95 or later.
Header: Declared in Dlcapi.h.

See Also

The DLC Interface Overview, DLC Structures, AcsLan, CCB_PARMS


LLC_DIR_MULTICAST_ADDRESS

The LLC_DIR_MULTICAST_ADDRESS structure is the DLC parameter table for the LLC_DIR_SET_MULTICAST_ADDRESS command. You pass a pointer to this structure using the pParameterTable member of the CCB_PARMS union.

Whistler DLC will no longer be supported. For more information, see Network Protocol Support in Windows.

typedef struct {
  UCHAR auchMulticastAddress[6];
} LLC_DIR_MULTICAST_ADDRESS, *PLLC_DIR_MULTICAST_ADDRESS;

Members

auchMulticastAddress
The 48-bit multicast address.

Requirements

Windows NT/2000 or later: Requires Windows 2000 and earlier.
Windows 95/98/Me: Requires Windows 95 or later.
Header: Declared in Dlcapi.h.

See Also

The DLC Interface Overview, DLC Structures, AcsLan, CCB_PARMS


LLC_DIR_OPEN_ADAPTER_PARMS

The LLC_DIR_OPEN_ADAPTER_PARMS structure is the DLC parameter table for the LLC_DIR_OPEN_ADAPTER command. You pass a pointer to this structure using the pParameterTable member of the CCB_PARMS union.

Whistler DLC will no longer be supported. For more information, see Network Protocol Support in Windows.

typedef struct {
  PLLC_ADAPTER_OPEN_PARMS pAdapterParms;
  PLLC_EXTENDED_ADAPTER_PARMS pExtendedParms;
  PLLC_DLC_PARMS pDlcParms;
  PVOID pReserved1;
} LLC_DIR_OPEN_ADAPTER_PARMS, *PLLC_DIR_OPEN_ADAPTER_PARMS;

Members

pAdapterParms
Specifies the address of an LLC_ADAPTER_OPEN_PARMS structure representing the open parameters.
pExtendedParms
Specifies the address of an LLC_EXTENDED_ADAPTER_PARMS structure representing the adapter parameter table.
pDlcParms
Specifies the address of an LLC_DLC_PARMS structure representing the DLC parameter table.
pReserved1
Reserved.

Remarks

This command prepares the protocol drivers for normal network communications on all network adapters for a given application. You must issue this command successfully before any network communication can start. The application cannot issue the command unless the adapter is in a logically closed state, which exists after one of the following occurs:

  • The adapter is initialized.
  • A fatal error has occurred.
  • The LLC_DIR_CLOSE_ADAPTER command has been executed.

Requirements

Windows NT/2000 or later: Requires Windows 2000 and earlier.
Windows 95/98/Me: Requires Windows 95 or later.
Header: Declared in Dlcapi.h.

See Also

The DLC Interface Overview, DLC Structures, AcsLan, CCB_PARMS, LLC_ADAPTER_OPEN_PARMS, LLC_DLC_PARMS LLC_EXTENDED_ADAPTER_PARMS


LLC_DIR_OPEN_DIRECT_PARMS

The LLC_DIR_OPEN_DIRECT_PARMS structure is the DLC parameter table for the LLC_DIR_OPEN_DIRECT command. You pass a pointer to this structure using the pParameterTable member of the CCB_PARMS union.

Whistler DLC will no longer be supported. For more information, see Network Protocol Support in Windows.

typedef struct {
  USHORT Reserved[4];
  USHORT usOpenOptions;
  USHORT usEthernetType;
  ULONG ulProtocolTypeMask;
  ULONG ulProtocolTypeMatch;
  USHORT usProtocolTypeOffset;
} LLC_DIR_OPEN_DIRECT_PARMS, *PLLC_DIR_OPEN_DIRECT_PARMS;

Members

Reserved
Reserved.
usOpenOptions
Specifies the options used when the adapter is physically opened. This member is a 16-bit value. Setting the various bits enables different options, as described in the following table.
Bit | Description
15 | Reserved; should be 0.
14 | Disables hard errors.
13 | Disables soft errors.
12 | Passes, as direct interface data, all adapter-class MAC frames that are received but not supported by the adapter. Otherwise, these frames will be rejected.
11 | Passes, as direct interface data, all attention MAC frames that are not the same as the last attention MAC frame received. Otherwise, these frames are ignored, and will not be passed to the workstation.
10 | Reserved; should be 0.
9 | Reserved; should be 0.
8 | Participates in monitor contention. Otherwise, this adapter does not participate.
7 | Passes beacon frames to the attached processor.
6 | Reserved; should be 0.
5 | Reserved; should be 0.
4 | Reserved; should be 0.
3 | Reserved; should be 0.
2 | Reserved; should be 0.
1 | Reserved; should be 0.
0 | Reserved; should be 0.

usEthernetType
Specifies an LLC_ETHERNET_TYPE value representing the type of Ethernet frame to receive. LLC_ETHERNET_TYPE is an enumerated type. The following values are defined.
Value | Meaning
LLC_ETHERNET_TYPE_DEFAULT | Use the parameter value set in the registry.
LLC_ETHERNET_TYPE_AUTO | Use automatic header type selection for links.
LLC_ETHERNET_TYPE_802_3 | Always use 802.3 LAN headers.
LLC_ETHERNET_TYPE_DIX | Always use LLC on DIX SNA type.

ulProtocolTypeMask
Specifies a mask used in a bitwise AND operation with the data. The result must be equal to ulProtocolTypeMatch. Otherwise, set this parameter to zero.
ulProtocolTypeMatch
Ignored if ulProtocolTypeMask is zero.
usProtocolTypeOffset
Specifies the distance of the protocol type from the beginning of the protocol header (offset 14 in the frame header). Ignored if ulProtocolTypeMask is zero.

Remarks

After you have issued the LLC_RECEIVE command for the direct station, the application has ownership of the direct station and can receive frames.

Win32 DLC differs from the IBM DLC specification in that you can receive frames of specific Ethernet types using the direct station when the usEthernetType member has a valid Ethernet type.

The ulProtoTypeMask, ulProtocolTypeMatch, and usProtocolTypeOffset members are optional. They specify the protocol type mask, match, and offset, respectively. They receive frames for a particular subprotocol type or socket. That is, the packet is received whenever the following statement is true:

(* (PULONG)((PUCHAR)pFrame + 14 + offset) & mask) == match

Requirements

Windows NT/2000 or later: Requires Windows 2000 and earlier.
Windows 95/98/Me: Requires Windows 95 or later.
Header: Declared in Dlcapi.h.

See Also

The DLC Interface Overview, DLC Structures, AcsLan, CCB_PARMS


LLC_DIR_READ_LOG_BUFFER

The LLC_DIR_READ_LOG_BUFFER union represents the log data returned by the LLC_DIR_READ_LOG command. The command returns either the adapter log, the direct interface log, or both logs. A pointer to this union is specified in the LLC_DIR_READ_LOG_PARMS structure.

Whistler DLC will no longer be supported. For more information, see Network Protocol Support in Windows.

typedef union {
  LLC_ADAPTER_LOG Adapter;
  LLC_DIRECT_LOG Dir;

  struct {
      LLC_ADAPTER_LOG Adapter;
      LLC_DIRECT_LOG Dir;
  } both;

} LLC_DIR_READ_LOG_BUFFER, *PLLC_DIR_READ_LOG_BUFFER;

Members

Adapter
Specifies the address of an LLC_ADAPTER_LOG structure representing the adapter log.
Dir
Specifies the address of an LLC_DIRECT_LOG structure representing the direct interface log.

Requirements

Windows NT/2000 or later: Requires Windows 2000 and earlier.
Windows 95/98/Me: Requires Windows 95 or later.
Header: Declared in Dlcapi.h.

See Also

The DLC Interface Overview, DLC Structures, AcsLan, LLC_ADAPTER_LOG, LLC_DIR_READ_LOG_PARMS, LLC_DIRECT_LOG


LLC_DIR_READ_LOG_PARMS

The LLC_DIR_READ_LOG_PARMS structure is the DLC parameter table for the LLC_DIR_READ_LOG command. You pass a pointer to this structure using the pParameterTable member of the CCB_PARMS union.

Whistler DLC will no longer be supported. For more information, see Network Protocol Support in Windows.

typedef struct {
  USHORT usTypeId;
  USHORT cbLogBuffer;
  PLLC_DIR_READ_LOG_BUFFER pLogBuffer;
  USHORT cbActualLength;
} LLC_DIR_READ_LOG_PARMS, *PLLC_DIR_READ_LOG_PARMS;

Members

usTypeId
Specifies the log to read. This member can be one of the following values.
Value | Meaning
LLC_DIR_READ_LOG_ADAPTER | Adapter error log.
LLC_DIR_READ_LOG_DIRECT | Direct interface error log.
LLC_DIR_READ_LOG_BOTH | Both the adapter and direct interface error logs.

cbLogBuffer
Size of the log buffer.
pLogBuffer
Specifies the address of an LLC_DIR_READ_LOG_BUFFER structure representing the log buffer.
cbActualLength
Receives the size of the log buffer.

Remarks

Not all network adapters support all members for this command. These members are supported by Microsoft-provided NDIS 3.0 drivers, including that for the IBM Token Ring.

Requirements

Windows NT/2000 or later: Requires Windows 2000 and earlier.
Windows 95/98/Me: Requires Windows 95 or later.
Header: Declared in Dlcapi.h.

See Also

The DLC Interface Overview, DLC Structures, AcsLan, CCB_PARMS, LLC_DIR_READ_LOG_BUFFER


LLC_DIR_SET_EFLAG_PARMS

The LLC_DIR_SET_EFLAG_PARMS structure is the DLC parameter table for the LLC_DIR_SET_EXCEPTION_FLAGS command. You pass a pointer to this structure using the pParameterTable member of the CCB_PARMS union.

Whistler DLC will no longer be supported. For more information, see Network Protocol Support in Windows.

typedef struct {
  ULONG ulAdapterCheckFlag;
  ULONG ulNetworkStatusFlag;
  ULONG ulPcErrorFlag;
  ULONG ulSystemActionFlag;
} LLC_DIR_SET_EFLAG_PARMS, *PLLC_DIR_SET_EFLAG_PARMS;

Members

ulAdapterCheckFlag
User notification flag for adapter-check exceptions. If this member is zero, the application will not be notified of these exceptions.
ulNetworkStatusFlag
User notification flag for network-status exceptions. If this member is zero, the application will not be notified of these exceptions.
ulPcErrorFlag
User notification flag for workstation errors. If this member is zero, the application will not be notified of these exceptions.
ulSystemActionFlag
User notification flag for system-action exceptions. If this member is zero, the application will not be notified of these exceptions.

Remarks

The flag members are used to request that information relating to exception events be passed to the application. You should issue this command immediately after issuing the LLC_DIR_OPEN_ADAPTER command if the application is to be notified of any exception conditions. Then issue an LLC_READ command, setting the hCompletionEvent member of the LLC_CCB structure. Whenever an exception occurs, this command will be executed and the event error code will be returned from the protocol driver.

Requirements

Windows NT/2000 or later: Requires Windows 2000 and earlier.
Windows 95/98/Me: Requires Windows 95 or later.
Header: Declared in Dlcapi.h.

See Also

The DLC Interface Overview, DLC Structures, AcsLan, CCB_PARMS


LLC_DIR_STATUS_PARMS

The LLC_DIR_STATUS_PARMS structure is the DLC parameter table for the LLC_DIR_STATUS command. You pass a pointer to this structure using the pParameterTable member of the CCB_PARMS union.

Whistler DLC will no longer be supported. For more information, see Network Protocol Support in Windows.

typedef struct {
  UCHAR auchPermanentAddress[6];
  UCHAR auchNodeAddress[6];
  UCHAR auchGroupAddress[4];
  UCHAR auchFunctAddr[4];
  UCHAR uchMaxSap;
  UCHAR uchOpenSaps;
  UCHAR uchMaxStations;
  UCHAR uchOpenStation;
  UCHAR uchAvailStations;
  UCHAR uchAdapterConfig;
  UCHAR auchReserved1[10];
  ULONG ulReserved1;
  ULONG ulReserved2;
  ULONG ulMaxFrameLength;
  USHORT usLastNetworkStatus;
  USHORT usAdapterType;
} LLC_DIR_STATUS_PARMS, *PLLC_DIR_STATUS_PARMS;

Members

auchPermanentAddress
The permanent address encoded on the adapter.
auchNodeAddress
The adapter's network address, as set by the LLC_DIR_OPEN_ADAPTER command.
auchGroupAddress
The adapter's group address.
auchFunctAddr
The adapter's functional address.
uchMaxSap
The maximum number of SAPs allowed.
uchOpenSaps
The number of SAPs opened by LLC_DLC_OPEN_SAP commands.
uchMaxStations
The maximum number of link stations allowed, as set by the LLC_DIR_OPEN_ADAPTER command.
uchOpenStation
The number of stations opened with the LLC_DLC_OPEN_STATION or LLC_DLC_CONNECT_STATION command.
uchAvailStations
The number of available stations (those that the LLC_DLC_OPEN_SAP or LLC_DLC_REALLOCATE commands do not reserve).
uchAdapterConfig
The adapter configuration flags. This member is a 8-bit value. Setting the various bits enables different options, as described in the following table.
Bit | Description
7 CCB1: The original PC network adapter is present.
CCB2: Reserved.
6 | Reserved.
5 | CCB1: If set, the protocol driver returns the address of the extended status table at offset 50. If the extended status is not supported, the value at offset 50 is not changed.
4 | Token release. If not set, 16 Mbps adapters get early token release. If set, there is no early token release for adapters operating at 16 Mbps.
3-2 The amount, in kilobytes, of shared RAM.
00 = 8 KB
01 = 16 KB
10 = 32 KB
11 = 64 KB
1 | Reserved.
0 | Adapter data rate. If not set, the data rate is 4 Mbps. If set, the data rate is 16 Mbps.

auchReserved1
Reserved.
ulReserved1
Reserved.
ulReserved2
Reserved.
ulMaxFrameLength
Maximum frame length.
usLastNetworkStatus
Last network status.
usAdapterType
CCB2: The adapter type. This member can be one of the following values.
Value | Meaning
LLC_ADAPTER_ETHERNET | Ethernet adapter.
LLC_ADAPTER_TOKEN_RING | IBM Token-Ring network 16/4 adapter/A.

Remarks

This command can be issued before the LLC_DIR_OPEN_ADAPTER command, but after the LLC_DIR_INITIALIZE command.

Requirements

Windows NT/2000 or later: Requires Windows 2000 and earlier.
Windows 95/98/Me: Requires Windows 95 or later.
Header: Declared in Dlcapi.h.

See Also

The DLC Interface Overview, DLC Structures, AcsLan, CCB_PARMS


LLC_DIRECT_LOG

The LLC_DIRECT_LOG structure represents the direct interface log. Specify this structure in the LLC_DIR_READ_LOG_BUFFER structure.

Whistler DLC will no longer be supported. For more information, see Network Protocol Support in Windows.

typedef struct {
  ULONG cTransmittedFrames;
  ULONG cReceivedFrames;
  ULONG cDiscardedFrames;
  ULONG cDataLost;
  USHORT cBuffersAvailable;
} LLC_DIRECT_LOG, *PLLC_DIRECT_LOG;

Members

cTransmittedFrames
Number of frames transmitted.
cReceivedFrames
Number of frames received.
cDiscardedFrames
Number of frames discarded (there was no LLC_RECEIVE command).
cDataLost
Number of times data was lost.
cBuffersAvailable
Number of buffers available in the SAP buffer pool.

Requirements

Windows NT/2000 or later: Requires Windows 2000 and earlier.
Windows 95/98/Me: Requires Windows 95 or later.
Header: Declared in Dlcapi.h.

See Also

The DLC Interface Overview, DLC Structures, AcsLan, LLC_DIR_READ_LOG_BUFFER


LLC_DLC_CONNECT_PARMS

The LLC_DLC_CONNECT_PARMS structure is the DLC parameter table for the LLC_DLC_CONNECT_STATION command. You pass a pointer to this structure using the pParameterTable member of the CCB_PARMS union.

Whistler DLC will no longer be supported. For more information, see Network Protocol Support in Windows.

typedef struct {
  USHORT usStationId;
  USHORT usReserved;
  PUCHAR pRoutingInfo;
} LLC_DLC_CONNECT_PARMS, *PLLC_DLC_CONNECT_PARMS;

Members

usStationId
The station identifier of the link station.
usReserved
Reserved.
pRoutingInfo
Specifies the address of the network routing information.

Remarks

If the remote partner for this link station is on a different ring, routing information is necessary for communication. If the link station was established due to the execution of an LLC_DLC_OPEN_STATION command, you must provide the routing information with this command.

Requirements

Windows NT/2000 or later: Requires Windows 2000 and earlier.
Windows 95/98/Me: Requires Windows 95 or later.
Header: Declared in Dlcapi.h.

See Also

The DLC Interface Overview, DLC Structures, AcsLan, CCB_PARMS


LLC_DLC_LOG_BUFFER

The LLC_DLC_LOG_BUFFER union represents the log buffer. Specify this structure in the LLC_DLC_STATISTICS_PARMS structure.

Whistler DLC will no longer be supported. For more information, see Network Protocol Support in Windows.

typedef union {
  DLC_SAP_LOG Sap;
  DLC_LINK_LOG Link;
} LLC_DLC_LOG_BUFFER, *PLLC_DLC_LOG_BUFFER;

Members

Sap
Specifies the address of a DLC_SAP_LOG structure representing the SAP log.
Link
Specifies the address of a DLC_LINK_LOG structure representing the link log.

Requirements

Windows NT/2000 or later: Requires Windows 2000 and earlier.
Windows 95/98/Me: Requires Windows 95 or later.
Header: Declared in Dlcapi.h.

See Also

The DLC Interface Overview, DLC Structures, AcsLan, DLC_LINK_LOG, DLC_SAP_LOG, LLC_DLC_STATISTICS_PARMS


LLC_DLC_MODIFY_PARMS

The LLC_DLC_MODIFY_PARMS structure is the DLC parameter table for the LLC_DLC_MODIFY command. You pass a pointer to this structure using the pParameterTable member of the CCB_PARMS union.

Whistler DLC will no longer be supported. For more information, see Network Protocol Support in Windows.

typedef struct {
  USHORT usRes;
  USHORT usStationId;
  UCHAR uchT1;
  UCHAR uchT2;
  UCHAR uchTi;
  UCHAR uchMaxOut;
  UCHAR uchMaxIn;
  UCHAR uchMaxOutIncr;
  UCHAR uchMaxRetryCnt;
  UCHAR uchReserved1;
  USHORT usMaxInfoFieldLength;
  UCHAR uchAccessPriority;
  UCHAR auchReserved3[4];
  UCHAR cGroupCount;
  PUCHAR pGroupList;
} LLC_DLC_MODIFY_PARMS, *PLLC_DLC_MODIFY_PARMS;

Members

usRes
Reserved.
usStationId
SAP or link station identifier.
uchT1
Response timer. Valid values are 1 through 10. If the value is zero, the current value is used.
uchT2
Acknowledgment timer. If the value is zero, the current value is used.
uchTi
Inactivity timer. If the value is zero, the current value is used.
uchMaxOut
Maximum number of unacknowledged LLC_TRANSMIT commands. The limit for this value is 127. If the value is zero, the current value is used.
uchMaxIn
Maximum number of unacknowledged LLC_RECEIVE commands. The limit for this value is 127. If the value is zero, the current value is used.
uchMaxOutIncr
Dynamic window increment value. If the value is zero, the current value is used.
uchMaxRetryCnt
Maximum number of times an unacknowledged command can be retried. If the value is zero, the current value is used.
uchReserved1
Reserved.
usMaxInfoFieldLength
Maximum information field length. Only for link stations.
uchAccessPriority
Token-Ring access priority. This value is not recognized on other networks.
auchReserved3
Reserved.
cGroupCount
Number of group SAPs for this SAP. Valid values are 0 to 13.
pGroupList
Specifies the address of the group list. This member is ignored if cGroupCount is zero.

Requirements

Windows NT/2000 or later: Requires Windows 2000 and earlier.
Windows 95/98/Me: Requires Windows 95 or later.
Header: Declared in Dlcapi.h.

See Also

The DLC Interface Overview, DLC Structures, AcsLan, CCB_PARMS


LLC_DLC_OPEN_SAP_PARMS

The LLC_DLC_OPEN_SAP_PARMS structure is the DLC parameter table for the LLC_DLC_OPEN_SAP command. You pass a pointer to this structure using the pParameterTable member of the CCB_PARMS union.

Whistler DLC will no longer be supported. For more information, see Network Protocol Support in Windows.

typedef struct {
  USHORT usStationId
  USHORT usUserStatValue;
  UCHAR uchT1;
  UCHAR uchT2;
  UCHAR uchTi;
  UCHAR uchMaxOut;
  UCHAR uchMaxIn;
  UCHAR uchMaxOutIncr;
  UCHAR uchMaxRetryCnt;
  UCHAR uchMaxMembers;
  USHORT usMaxI_Field;
  UCHAR uchSapValue;
  UCHAR uchOptionsPriority;
  UCHAR uchcStationCount;
  UCHAR uchReserved2[2];
  UCHAR cGroupCount;
  PUCHAR pGroupList;
  ULONG DlcStatusFlags;
  UCHAR uchReserved3[8];
  UCHAR cLinkStationsAvail;
} LLC_DLC_OPEN_SAP_PARMS, *PLLC_DLC_OPEN_SAP_PARMS;

Members

usStationId
SAP or link station identifier.
usUserStatValue
Reserved for user.
uchT1
Response timer. If the value is zero, the default setting of 5 is used.
uchT2
Acknowledgment timer. If the value is zero, the default setting of 2 is used.
uchTi
Inactivity timer. If the value is zero, the default setting of 10 is used.
uchMaxOut
Maximum number of unacknowledged LLC_TRANSMIT commands. The limit for this value is 127. If the value is zero, the default setting of 2 is used.
uchMaxIn
Maximum number of unacknowledged LLC_RECEIVE commands. The limit for this value is 127. If the value is zero, the default setting of 1 is used.
uchMaxOutIncr
Dynamic window increment value.
uchMaxRetryCnt
Maximum number of retries for an unacknowledged command. The maximum valid value is 255. If the value is zero, the default setting of 8 is used.
uchMaxMembers
Maximum members for the group SAP.
usMaxI_Field
Maximum length of the information field. If the value is zero, the default setting of 600 is used.
uchSapValue
SAP value to be assigned.
uchOptionsPriority
SAP options and access priority. Specify one of the following options.
Option | Description
LLC_XID_HANDLING_IN_APPLICATION | The XID command frames for this SAP are passed to the application.
LLC_XID_HANDLING_IN_DLC | The XID command frames are handled for this SAP by the DLC function of the adapter.
LLC_INDIVIDUAL_SAP | The SAP is an individual SAP.
LLC_GROUP_SAP | The SAP is a group SAP.
LLC_MEMBER_OF_GROUP_SAP | The SAP may be a member of a group SAP.

uchcStationCount
Maximum number of link stations in the SAP. Provides resources for subsequent LLC_DLC_OPEN_STATION commands.
uchReserved2
Reserved.
cGroupCount
Number of group SAPs for this SAP. Valid values for the Token-Ring network are 0 through 8. Valid values for other networks are 0 through 255. If additional memberships are needed, use the LLC_DLC_MODIFY command.
pGroupList
Specifies the address of the group list. This member is ignored if cGroupCount is zero.
DlcStatusFlags
User notification flags for DLC status change.
uchReserved3
Reserved.
cLinkStationsAvail
Total number of available link stations.

Remarks

Opening an individual SAP requesting group SAP membership for a group SAP will fail if the membership is requested in group SAPs with different types. If this happens, the SAP opens with membership into the group SAPs specified until the SAP type of the group SAP listed changes. All subsequent group SAPs listed after a SAP type change has been detected will not be used for membership.

Requirements

Windows NT/2000 or later: Requires Windows 2000 and earlier.
Windows 95/98/Me: Requires Windows 95 or later.
Header: Declared in Dlcapi.h.

See Also

The DLC Interface Overview, DLC Structures, AcsLan, CCB_PARMS


LLC_DLC_OPEN_STATION_PARMS

The LLC_DLC_OPEN_STATION_PARMS structure is the DLC parameter table for the LLC_OPEN_STATION command. You pass a pointer to this structure using the pParameterTable member of the CCB_PARMS union.

Whistler DLC will no longer be supported. For more information, see Network Protocol Support in Windows.

typedef struct {
  USHORT usSapStationId;
  USHORT usLinkStationId;
  UCHAR uchT1;
  UCHAR uchT2;
  UCHAR uchTi;
  UCHAR uchMaxOut;
  UCHAR uchMaxIn;
  UCHAR uchMaxOutIncr;
  UCHAR uchMaxRetryCnt;
  UCHAR uchRemoteSap;
  USHORT usMaxI_Field;
  UCHAR uchAccessPriority;
  PVOID pRemoteNodeAddress;
} LLC_DLC_OPEN_STATION_PARMS, *PLLC_DLC_OPEN_STATION_PARMS;

Members

usSapStationId
SAP station identifier.
usLinkStationId
Link station identifier.
uchT1
Response timer. If the value is zero, the default is as defined by the LLC_DLC_OPEN_SAP command.
uchT2
Acknowledgment timer. If the value is zero, the default is as defined by the LLC_DLC_OPEN_SAP command.
uchTi
Inactivity timer. If the value is zero, the default is as defined by the LLC_DLC_OPEN_SAP command.
uchMaxOut
Maximum number of unacknowledged LLC_TRANSMIT commands. The limit for this value is 127. If the value is zero, the default is as defined by the LLC_DLC_OPEN_SAP command.
uchMaxIn
Maximum number of unacknowledged LLC_RECEIVE commands. The limit for this value is 127. If the value is zero, the default is as defined by the LLC_DLC_OPEN_SAP command.
uchMaxOutIncr
Dynamic window increment value.
uchMaxRetryCnt
Maximum number of retries for an unacknowledged command. The limit for this value is 255. If the value is zero, the default is as defined by the LLC_DLC_OPEN_SAP command.
uchRemoteSap
Value of the remote SAP. It must be an individual SAP.
usMaxI_Field
Maximum information field length. If the value is zero, the default is as defined by the LLC_DLC_OPEN_SAP command.
uchAccessPriority
Token-ring access priority. This value is not recognized on other networks.
pRemoteNodeAddress
Specifies the destination address.

Requirements

Windows NT/2000 or later: Requires Windows 2000 and earlier.
Windows 95/98/Me: Requires Windows 95 or later.
Header: Declared in Dlcapi.h.

See Also

The DLC Interface Overview, DLC Structures, AcsLan, CCB_PARMS


LLC_DLC_PARMS

The LLC_DLC_PARMS structure represents the DLC parameter table for the LLC_DIR_OPEN_ADAPTER command. You pass a pointer to this structure in the LLC_DIR_OPEN_ADAPTER_PARMS structure.

Whistler DLC will no longer be supported. For more information, see Network Protocol Support in Windows.

typedef struct {
  UCHAR uchDlcMaxSaps;
  UCHAR uchDlcMaxStations;
  UCHAR uchDlcMaxGroupSaps;
  UCHAR uchDlcMaxGroupMembers;
  UCHAR uchT1_TickOne;
  UCHAR uchT2_TickOne;
  UCHAR uchTi_TickOne;
  UCHAR uchT1_TickTwo;
  UCHAR uchT2_TickTwo;
  UCHAR uchTi_TickTwo;
} LLC_DLC_PARMS, *PLLC_DLC_PARMS;

Members

uchDlcMaxSaps
The maximum number of SAPs that can be opened at one time. This value can be limited by available memory. Specify up to 126. If the value is zero, as the default setting of 2 is used.
uchDlcMaxStations
The maximum number of link stations that can be opened at one time. This value can be limited by available memory. Specify up to 255. If the value is zero, the default setting of 6 is used.
uchDlcMaxGroupSaps
The maximum number of group SAPs that can be opened at one time. Specify up to 125. If the value is zero, no group SAPs are allowed.
uchDlcMaxGroupMembers
The maximum number of SAPs that can be assigned to any given group. Specify up to 126.
uchT1_TickOne
The number of 40 millisecond intervals between timer ticks for the short DLC timer T1 (T1 timer values 1 through 5). If the value is zero, the default setting of 5 is used.
uchT2_TickOne
The number of 40 millisecond intervals between timer ticks for the short DLC timer T2 (T2 timer values 1 through 5). If the value is zero, the default setting of 1 is used.
uchTi_TickOne
The number of 40 millisecond intervals between timer ticks for the short DLC timer Ti (Ti timer values 1 through 5). If the value is zero, the default setting of 25 is used.
uchT1_TickTwo
The number of 40 millisecond intervals between timer ticks for the long DLC timer T1 (T1 timer values 6 through 10). If the value is zero, the default setting of 25 is used.
uchT2_TickTwo
The number of 40 millisecond intervals between timer ticks for the long DLC timer T2 (T2 timer values 6 through 10). If the value is zero, the default setting of 10 is used.
uchTi_TickTwo
The number of 40 millisecond intervals between timer ticks for the long DLC timer Ti (Ti timer values 6 through 10). If the value is zero, the default setting of 125 is used.

Requirements

Windows NT/2000 or later: Requires Windows 2000 and earlier.
Windows 95/98/Me: Requires Windows 95 or later.
Header: Declared in Dlcapi.h.

See Also

The DLC Interface Overview, DLC Structures, AcsLan, LLC_DIR_OPEN_ADAPTER_PARMS


LLC_DLC_REALLOCATE_PARMS

The LLC_DLC_REALLOCATE_PARMS structure is the DLC parameter table for the LLC_DLC_REALLOCATE_STATION command. You pass a pointer to this structure using the pParameterTable member of the CCB_PARMS union.

Whistler DLC will no longer be supported. For more information, see Network Protocol Support in Windows.

typedef struct {
  USHORT usStationId;
  UCHAR uchOption;
  UCHAR uchStationCount;
  UCHAR uchStationsAvailOnAdapter;
  UCHAR uchStationsAvailOnSap;
  UCHAR uchTotalStationsOnAdapter;
  UCHAR uchTotalStationsOnSap;
} LLC_DLC_REALLOCATE_PARMS, *PLLC_DLC_REALLOCATE_PARMS;

Members

usStationId
Identifier of the affected SAP.
uchOption
The increase or decrease indicator. Specify one of the following values.
Value | Meaning
LLC_INCREASE_LINK_STATIONS | Increase the number of link stations.
LLC_DECREASE_LINK_STATIONS | Decrease the number of link stations.

uchStationCount
Number of link stations to be reallocated as indicated by the uchOption member. If this number is greater than the number of available stations, the command fails and LLC_STATUS_INADEQUATE_LINKS is the return code. If this value is zero, the command is executed and returns the values in the parameter table.
uchStationsAvailOnAdapter
Number of link stations available for this adapter.
uchStationsAvailOnSap
Number of link stations available for this SAP.
uchTotalStationsOnAdapter
Number of link stations configured for this adapter.
uchTotalStationsOnSap
Number of link stations reserved for this SAP.

Requirements

Windows NT/2000 or later: Requires Windows 2000 and earlier.
Windows 95/98/Me: Requires Windows 95 or later.
Header: Declared in Dlcapi.h.

See Also

The DLC Interface Overview, DLC Structures, AcsLan, CCB_PARMS


LLC_DLC_SET_THRESHOLD_PARMS

The LLC_DLC_SET_THRESHOLD_PARMS structure is the DLC parameter table for the LLC_DLC_SET_THRESHOLD command. You pass a pointer to this structure using the pParameterTable member of the CCB_PARMS union.

Whistler DLC will no longer be supported. For more information, see Network Protocol Support in Windows.

typedef struct {
  USHORT usStationId;
  USHORT cBufferThreshold;
  PVOID AlertEvent;
} LLC_DLC_SET_THRESHOLD_PARMS, *PLLC_DLC_SET_THRESHOLD_PARMS;

Members

usStationId
SAP station identifier.
cBufferThreshold
SAP buffer pool threshold number. If the number of buffers in the SAP buffer pool is less than this threshold, the AlertEvent member is signaled.
AlertEvent
Event used to alert the application that the buffer threshold has been exceeded.

Requirements

Windows NT/2000 or later: Requires Windows 2000 and earlier.
Windows 95/98/Me: Requires Windows 95 or later.
Header: Declared in Dlcapi.h.

See Also

The DLC Interface Overview, DLC Structures, AcsLan, CCB_PARMS


LLC_DLC_STATISTICS_PARMS

The LLC_DLC_STATISTICS_PARMS structure is the DLC parameter table for the LLC_DLC_STATISTICS command. You pass a pointer to this structure using the pParameterTable member of the CCB_PARMS union.

Whistler DLC will no longer be supported. For more information, see Network Protocol Support in Windows.

typedef struct {
  USHORT usStationId;
  USHORT cbLogBufSize;
  PLLC_DLC_LOG_BUFFER pLogBuf;
  USHORT usActLogLength;
  UCHAR uchOptions;
} LLC_DLC_STATISTICS_PARMS, *PLLC_DLC_STATISTICS_PARMS;

Members

usStationId
Identifier of a SAP or a link station.
cbLogBufSize
Size of the log buffer.
pLogBuf
Specifies the address of an LLC_DLC_LOG_BUFFER structure representing the log buffer.
usActLogLength
Length of returned log.
uchOptions
Command options. Specify one of the following options.
Option | Description
LLC_DLC_RESET_STATISTICS | The counters are reset to zero where appropriate.
LLC_DLC_READ_STATISTICS | The counters are read.

Requirements

Windows NT/2000 or later: Requires Windows 2000 and earlier.
Windows 95/98/Me: Requires Windows 95 or later.
Header: Declared in Dlcapi.h.

See Also

The DLC Interface Overview, DLC Structures, AcsLan, CCB_PARMS, LLC_DLC_LOG_BUFFER


LLC_EXTENDED_ADAPTER_PARMS

The LLC_EXTENDED_ADAPTER_PARMS structure represents the adapter parameter table for the LLC_DIR_OPEN_ADAPTER command. You pass a pointer to this structure in the LLC_DIR_OPEN_ADAPTER_PARMS structure.

Whistler DLC will no longer be supported. For more information, see Network Protocol Support in Windows.

typedef struct {
  PVOID hBufferPool;
  PVOID pSecurityDescriptor;
  LLC_ETHERNET_TYPE LlcEthernetType;
} LLC_EXTENDED_ADAPTER_PARMS, *PLLC_EXTENDED_ADAPTER_PARMS;

Members

hBufferPool
Handle to a buffer pool. The handle must have been created using the LLC_BUFFER_CREATE command.
pSecurityDescriptor
Windows NT/2000 or later: An optional security descriptor.

Windows 95/98/Me: This member is not used.

LlcEthernetType
Specifies an LLC_ETHERNET_TYPE value representing the Ethernet type. LLC_ETHERNET_TYPE is an enumerated type. The following values are defined.
Value | Meaning
LLC_ETHERNET_TYPE_DEFAULT | Use the parameter value set in the registry.
LLC_ETHERNET_TYPE_AUTO | Use automatic header type selection for links.
LLC_ETHERNET_TYPE_802_3 | Always use 802.3 LAN headers.
LLC_ETHERNET_TYPE_DIX | Always use LLC on DIX SNA type.

Requirements

Windows NT/2000 or later: Requires Windows 2000 and earlier.
Windows 95/98/Me: Requires Windows 95 or later.
Header: Declared in Dlcapi.h.

See Also

The DLC Interface Overview, DLC Structures, AcsLan, LLC_DIR_OPEN_ADAPTER_PARMS


LLC_NEXT_BUFFER

The LLC_NEXT_BUFFER structure represents a buffer for received data. Specify this structure in the LLC_BUFFER structure.

Whistler DLC will no longer be supported. For more information, see Network Protocol Support in Windows.

typedef struct {
  PLLC_BUFFER pNextBuffer;
  USHORT cbFrame;
  USHORT cbBuffer;
  USHORT offUserData;
  USHORT cbUserData;
} LLC_NEXT_BUFFER;

Members

pNextBuffer
Specifies the address of an LLC_BUFFER structure representing the next buffer in the frame.
cbFrame
Length of the entire frame received.
cbBuffer
Length of the segment.
offUserData
Offset of data from the header.
cbUserData
Length of the data.

Requirements

Windows NT/2000 or later: Requires Windows 2000 and earlier.
Windows 95/98/Me: Requires Windows 95 or later.
Header: Declared in Dlcapi.h.

See Also

The DLC Interface Overview, DLC Structures, AcsLan, LLC_BUFFER


LLC_NOT_CONTIGUOUS_BUFFER

The LLC_NOT_CONTIGUOUS_BUFFER structure represents a buffer for the received data. Specify this structure in the LLC_BUFFER structure.

Whistler DLC will no longer be supported. For more information, see Network Protocol Support in Windows.

typedef struct {
  PLLC_BUFFER pNextBuffer;
  USHORT cbFrame;
  USHORT cbBuffer;
  USHORT offUserData;
  USHORT cbUserData;
  USHORT usStationId;
  UCHAR uchOptions;
  UCHAR uchMsgType;
  USHORT cBuffersLeft;
  UCHAR uchRcvFS;
  UCHAR uchAdapterNumber;
  PLLC_BUFFER pNextFrame;
  UCHAR cbLanHeader;
  UCHAR cbDlcHeader;
  UCHAR auchLanHeader[32];
  UCHAR auchDlcHeader[4];
  USHORT usPadding;
} LLC_NOT_CONTIGUOUS_BUFFER;

Members

pNextBuffer
Specifies the address of an LLC_BUFFER structure representing the next buffer in the frame.
cbFrame
Length of the entire frame.
cbBuffer
Length of the buffer.
offUserData
User data in the structure.
cbUserData
Length of user data.
usStationId
Station identifier.
uchOptions
Option byte from RECEIVE parameter table.
uchMsgType
Specifies an LLC_FRAME_TYPES value representing the message type. LLC_FRAME_TYPES is an enumerated type. The following values are defined.
Value | Meaning
LLC_DIRECT_MAC | MAC frame (direct station on Token-Ring network only).
LLC_I_FRAME | Information frame (link stations only).
LLC_UI_FRAME | UI frame.
LLC_XID_COMMAND_POLL | XID command (poll bit).
LLC_XID_COMMAND_NOT_POLL | XID command (not poll bit).
LLC_XID_RESPONSE_FINAL | XID response (final bit).
LLC_XID_RESPONSE_NO_FINAL | XID response (not final bit).
LLC_TEST_RESPONSE_FINAL | TEST response (final bit).
LLC_TEST_RESPONSE_NOT_FINAL | TEST response (not final bit).
LLC_DIRECT_8022 | 802.2 frame (direct station only).
LLC_DIRECT_ETHERNET_TYPE | Ethernet frame (direct station only).

cBuffersLeft
Number of basic buffer units left.
uchRcvFS
The received frame status (Token-Ring network only). This member is an 8-bit value. Setting the various bits enables different options, as described in the following table.
Bit | Description
7 | Address recognized indicator.
6 | Frame copied indicator.
5 | Reserved.
4 | Reserved.
3 | Address recognized indicator.
2 | Frame copied indicator.
1 | Reserved.
0 | Reserved.

uchAdapterNumber
Adapter number.
pNextFrame
Specifies the address of an LLC_BUFFER structure representing the next frame.
cbLanHeader
Length of the LAN header.
cbDlcHeader
Length of the DLC header.
auchLanHeader
LAN header of the received frame.
auchDlcHeader
DLC header of the received frame.
usPadding
Padding bytes. Data begins from offset 64.

Requirements

Windows NT/2000 or later: Requires Windows 2000 and earlier.
Windows 95/98/Me: Requires Windows 95 or later.
Header: Declared in Dlcapi.h.

See Also

The DLC Interface Overview, DLC Structures, AcsLan, LLC_BUFFER, LLC_CCB


LLC_READ_PARMS

The LLC_READ_PARMS structure is the DLC parameter table for the LLC_READ command. You pass a pointer to this structure using the pParameterTable member of the CCB_PARMS union.

Whistler DLC will no longer be supported. For more information, see Network Protocol Support in Windows.

typedef struct {
  USHORT usStationId;
  UCHAR uchOptionIndicator;
  UCHAR uchEventSet;
  UCHAR uchEvent;
  UCHAR uchCriticalSubset;
  ULONG ulNotificationFlag;
  union {
      struct {
          USHORT usCcbCount;
          PLLC_CCB pCcbCompletionList;
          USHORT usBufferCount;
          PLLC_BUFFER pFirstBuffer;
          USHORT usReceivedFrameCount;
          PLLC_BUFFER pReceivedFrame;
          USHORT usEventErrorCode;
          USHORT usEventErrorData[3];
      } Event;
      struct {
          USHORT usStationId;
          USHORT usDlcStatusCode;
          UCHAR uchFrmrData[5];
          UCHAR uchAccessPriority;
          UCHAR uchRemoteNodeAddress[6];
          UCHAR uchRemoteSap;
          UCHAR uchReserved;
          USHORT usUserStatusValue;
      } Status;
  } Type;

} LLC_READ_PARMS, *PLLC_READ_PARMS;

Members

usStationId
SAP station identifier.
uchOptionIndicator
Read option indicator. Specify one of the following values.
Value | Description
LLC_OPTION_READ_STATION | Match the read command using the station identifier.
LLC_OPTION_READ_SAP | Match the read command using the SAP number of the station identifier.
LLC_OPTION_READ_ALL | Match the read command using all events.

uchEventSet
Set of events for notification. Specify one of the following values.
Value | Description
LLC_READ_ALL_EVENTS | All events.
LLC_EVENT_SYSTEM_ACTION | System action events.
LLC_EVENT_NETWORK_STATUS | Network status events (non-critical).
LLC_EVENT_CRITICAL_EXCEPTION | Critical exception.
LLC_EVENT_STATUS_CHANGE | DLC status change.
LLC_EVENT_RECEIVE_DATA | Receive data.
LLC_EVENT_TRANSMIT_COMPLETION | Transmit completion.
LLC_EVENT_COMMAND_COMPLETION | Command completion.

uchEvent
Posting event. Receives one of the LLC_EVENT constants described in uchEventSet.
uchCriticalSubset
Critical event subset identifier. This member receives one of the following values.
Value | Description
1 | Network status
2 | Adapter check
3 | System error
4 | System action

ulNotificationFlag
Event user notification flag. This member receives the DLC status flag, as defined with the LLC_DLC_OPEN_SAP command, for the link station that experienced the change.
usCcbCount
Count of command control blocks chained to pCcbCompletionList.
pCcbCompletionList
Specifies the address of the command control blocks.
usBufferCount
Count of buffers chained to pFirstBuffer.
pFirstBuffer
Address of the first buffer of received data.
usReceivedFrameCount
Count of received frames chained to pReceivedFrame.
pReceivedFrame
Address of the received frame.
usEventErrorCode
Exception code.
usEventErrorData
Exception parameters.
usStationId
SAP or link station identifier.
usDlcStatusCode
DLC status code. This member receives one or more of the following values.
Code | Name
0x8000 | LLC_INDICATE_LINK_LOST
0x4000 | LLC_INDICATE_DM_DISC_RECEIVED
0x2000 | LLC_INDICATE_FRMR_RECEIVED
0x1000 | LLC_INDICATE_FRMR_SENT
0x0800 | LLC_INDICATE_RESET
0x0400 | LLC_INDICATE_CONNECT_REQUEST
0x0200 | LLC_INDICATE_REMOTE_BUSY
0x0100 | LLC_INDICATE_REMOTE_READY
0x0080 | LLC_INDICATE_TI_TIMER_EXPIRED
0x0040 | LLC_INDICATE_DLC_COUTNER_OVERFLOW
0x0020 | LLC_INDICATE_ACCESS_PRTY_LOWERED
0x0001 | LLC_INDICATE_LOCAL_STATION_BUSY

uchFrmrData
Frame data.
uchAccessPriority
The new Token-Ring access priority. This value is not recognized on other networks.
uchRemoteNodeAddress
Remote node address.
uchRemoteSap
Remote SAP address.
uchReserved
Reserved.
usUserStatusValue
User status value.

Remarks

The following table shows which members are used for each event.

Event | Members used
LLC_EVENT_SYSTEM_ACTION | ulNotificationFlag usCcbCount pCcbCompletionList usBufferCount pFirstBuffer usReceivedFrameCount pReceivedFrame usEventErrorCode usEventErrorData
LLC_EVENT_NETWORK_STATUS | ulNotificationFlag usEventErrorCode
LLC_EVENT_CRITICAL_EXCEPTION | uchCriticalSubset ulNotificationFlag usCcbCount pCcbCompletionList usBufferCount pFirstBuffer usReceivedFrameCount pReceivedFrame usEventErrorCode usEventErrorData
LLC_EVENT_STATUS_CHANGE | ulNotificationFlag usStationId usDlcStatusCode uchFrmrData uchAccessPriority uchRemoteNodeAddress uchRemoteSap usUserStatusValue
LLC_EVENT_RECEIVE_DATA | usReceivedFrameCount pReceivedFrame
LLC_EVENT_TRANSMIT_COMPLETION | usCcbCount pCcbCompletionList
LLC_EVENT_COMMAND_COMPLETION | usCcbCount pCcbCompletionList usBufferCount pFirstBuffer usReceivedFrameCount pReceivedFrame

Requirements

Windows NT/2000 or later: Requires Windows 2000 and earlier.
Windows 95/98/Me: Requires Windows 95 or later.
Header: Declared in Dlcapi.h.

See Also

The DLC Interface Overview, DLC Structures, AcsLan, CCB_PARMS


LLC_RECEIVE_PARMS

The LLC_RECEIVE_PARMS structure is the DLC parameter table for the LLC_RECEIVE command. You pass a pointer to this structure using the pParameterTable member of the CCB_PARMS union.

Whistler DLC will no longer be supported. For more information, see Network Protocol Support in Windows.

typedef struct {
  USHORT usStationId;
  USHORT usUserLength;
  ULONG ulReceiveFlag;
  PLLC_BUFFER pFirstBuffer;
  UCHAR uchOptions;
  UCHAR auchReserved1[3];
  UCHAR uchRcvReadOption;
} LLC_RECEIVE_PARMS, *PLLC_RECEIVE_PARMS;

Members

usStationId
SAP or link station identifier.
usUserLength
Length of user data in buffer.
ulReceiveFlag
The received data handler.
pFirstBuffer
Specifies the address of an LLC_BUFFER structure, representing the first buffer in the pool.
uchOptions
Defines how the frame is received. Specify one of the following values.
Option | Description
LLC_CONTIGUOUS_MAC | Contiguous MAC. Used only with MAC frames.
LLC_CONTIGUOUS_DATA | Contiguous data. Only used with non-MAC frames. The system places the entire frame in the first buffer.
LLC_NOT_CONTIGUOUS_DATA | The first data received is placed in the second buffer. The first buffer contains only the header data.

auchReserved1
Reserved.
uchRcvReadOption
Defines how RCV frames are chained. Specify one of the following values.
Option | Description
LLC_RCV_READ_INDIVIDUAL_FRAMES | The frames are not chained. Use an LLC_READ command to retrieve each frame.
LLC_RCV_CHAIN_FRAMES_ON_LINK | The frames received for a link station are chained. You can use a single LLC_READ command to retrieve all chained frames.
LLC_RCV_CHAIN_FRAMES_ON_SAP | The frames received for a SAP are chained. You can use a single LLC_READ command to retrieve all chained frames.

Remarks

If LLC_RECEIVE commands have been issued for link stations, the options specified for the link station's LLC_RECEIVE command determine how received data is chained. If a link station has a pending LLC_RECEIVE command specifying that its received frames should be chained on a link station basis, its frames will not be chained together with the SAP's frames. All link stations that do not have an LLC_RECEIVE command pending will have their received frames chained as specified by the SAP's LLC_RECEIVE command. If neither the SAP nor the link station have an LLC_RECEIVE command pending, the direct station is used.

The uchRcvReadOption member of a SAP's LLC_RECEIVE command is used to determine how data that the link station receives for the SAP is chained when its link stations do not have LLC_RECEIVE commands outstanding.

LLC_READ commands must match the LLC_RECEIVE commands uchRcvReadOption settings.

Requirements

Windows NT/2000 or later: Requires Windows 2000 and earlier.
Windows 95/98/Me: Requires Windows 95 or later.
Header: Declared in Dlcapi.h.

See Also

The DLC Interface Overview, DLC Structures, AcsLan, CCB_PARMS, LLC_BUFFER


LLC_TRANSMIT_PARMS

The LLC_TRANSMIT_PARMS structure is the DLC parameter table for the LLC_TRANSMIT commands. You pass a pointer to this structure using the pParameterTable member of the CCB_PARMS union.

Whistler DLC will no longer be supported. For more information, see Network Protocol Support in Windows.

typedef struct {
  USHORT usStationId;
  UCHAR uchTransmitFs;
  UCHAR uchRemoteSap;
  PLLC_XMIT_BUFFER pXmitQueue1;
  PLLC_XMIT_BUFFER pXmitQueue2;
  USHORT cbBuffer1;
  USHORT cbBuffer2;
  PVOID pBuffer1;
  PVOID pBuffer2;
  UCHAR uchXmitReadOption;
} LLC_TRANSMIT_PARMS, *PLLC_TRANSMIT_PARMS;

Members

usStationId
Specifies the station sending the data.
uchTransmitFs
The FS field returned by the adapter or protocol driver. On Ethernet, this field is zero. If the command succeeds, the return code is zero; otherwise, the return code is nonzero.
uchRemoteSap
The SAP value of the remote SAP that the local SAP is communicating with. This value is ignored if the sending station is a link station or a direct station.
pXmitQueue1
Specifies the address of the first (or only) buffer in a queue of buffers to be transmitted or NULL. The data in all buffers is transmitted as one frame.
pXmitQueue2
Specifies the address of the first (or only) buffer in a second queue of buffers to be transmitted or NULL. The data in all buffers is transmitted as one frame following the frame that contains the pXmitQueue1 buffers.
cbBuffer1
The length of the buffer for transmitting data pointed to by pBuffer1. If this member is zero, the cbBuffer2, pBuffer1, and pBuffer2 members are ignored.
cbBuffer2
The length of the buffer for transmitting data pointed to by pBuffer1. If this member is zero, this buffer is not used.
pBuffer1
Specifies the address of the buffer containing the data to be transmitted. The data is transmitted as one frame following the data in pXmitQueue1 and pXmitQueue2.
pBuffer2
Specifies the address of the buffer containing the data to be transmitted. The data is transmitted as one frame following the data in pXmitQueue1, pXmitQueue2, and pBuffer1.
uchXmitReadOption
Defines whether LLC_TRANSMIT commands are chained together when they complete. Specify one of the following values.
Option | Description
LLC_CHAIN_XMIT_COMMANDS_ON_LINK | Chain the command on a link station basis.
LLC_COMPLETE_SINGLE_XMIT_FRAME | Do not chain the command.
LLC_CHAIN_XMIT_COMMANDS_ON_SAP | Chain the command on a SAP station basis.

Remarks

This structure is used by all the LLC_TRANSMIT commands. The following table describes the information you must supply for each command.

Command | Command specifics
LLC_TRANSMIT_DIR_FRAME | The entire frame must be prepared by the application. The LAN header must reserve space for the adapter to insert the source address.
LLC_TRANSMIT_I_FRAME | The only data supplied by the application is the actual data portion.
LLC_TRANSMIT_UI_FRAME | The adapter provides the DLC header information. The application program must provide the LAN header and data portions of the message. The first buffer contains only the LAN header.
LLC_TRANSMIT_XID_CMD | The user provides the LAN header and data portion. The user must leave room for the DLC header provided by the protocol driver. The first buffer must contain only the LAN header.
LLC_TRANSMIT_XID_RESP_FINAL | The user provides the LAN header and data portion. The user must leave room for the DLC header provided by the protocol driver. The first buffer must contain only the LAN header.
LLC_TRANSMIT_XID_RESP_NOT_FINAL | The user provides the LAN header and data portion. The user must leave room for the DLC header provided by the protocol driver. The first buffer must contain only the LAN header.
LLC_TRANSMIT_TEST_CMD | The adapter provides the DLC header. The application program provides the LAN header and the optional test information. The first buffer must contain only the LAN header.

Requirements

Windows NT/2000 or later: Requires Windows 2000 and earlier.
Windows 95/98/Me: Requires Windows 95 or later.
Header: Declared in Dlcapi.h.

See Also

The DLC Interface Overview, DLC Structures, AcsLan, CCB_PARMS


LLC_XMIT_BUFFER

The LLC_XMIT_BUFFER structure represents a pool buffer. You pass a pointer to this structure in the LLC_BUFFER_FREE_PARMS, LLC_BUFFER_GET_PARMS, or LLC_TRANSMIT_PARMS structure.

Whistler DLC will no longer be supported. For more information, see Network Protocol Support in Windows.

typedef struct _LLC_XMIT_BUFFER LLC_XMIT_BUFFER, *PLLC_XMIT_BUFFER;

struct _LLC_XMIT_BUFFER {
  PLLC_XMIT_BUFFER pNext;
  USHORT usReserved1;
  USHORT cbBuffer;
  USHORT usReserved2;
  USHORT cbUserData;
  UCHAR auchData[];
};

Members

pNext
Next buffer or NULL.
usReserved1
Reserved.
cbBuffer
Length of the transmitted data.
usReserved2
Reserved.
cbUserData
Length of the optional header.
auchData
Optional header and transmitted data.

Requirements

Windows NT/2000 or later: Requires Windows 2000 and earlier.
Windows 95/98/Me: Requires Windows 95 or later.
Header: Declared in Dlcapi.h.

See Also

The DLC Interface Overview, DLC Structures, AcsLan, LLC_BUFFER_FREE_PARMS, LLC_BUFFER_GET_PARMS, LLC_TRANSMIT_PARMS


Topic Not Found

No matching topic was found. Some possible reasons and remedies are as follows:

  • The file (.chm) that contains the destination topic is not in the expected location.

    Remedy: Rerun the MSDN Library Setup.

  • The file (.chm) that contains the current topic or destination topic is out-of-date and the link is no longer valid.

    Remedy: Install the latest version of the MSDN Library.

  • The MSDN Library CD is not in the CD-ROM drive.

    Remedy: Insert the MSDN Library CD into the CD-ROM drive.